如何从托管Windows服务将对象传递给Web Service

时间:2014-01-30 08:17:18

标签: c# web-services object windows-services

我有一个网络服务,比如MyWebService,我需要在Windows服务上托管它,比如MyWindowsService。因此,在OnStart中的MyWindowsService方法中,我启动了MyWebService。当MyWindowsService启动时,我需要发送一条日志消息(从MyWindowsService内部)到一个监听器,说明应用程序已经启动。此类日志消息由LogGenerator生成。

MyWebService中,它还需要在触发某些事件时向侦听器发送日志消息,并且MyWebService也会生成这些日志消息(从LogGenerator内发送) }。

LogGenerator有一些要配置的属性。现在我面临一些问题。

  1. 我不知道是否需要构建LogGenerator的实例,在MyWindowsService中配置此实例,然后将其传递给MyWebService。如果是这样,那么我如何从托管Windows服务将对象传递给Web服务。或者,

  2. 我在LogGenerator中构建了MyWindowsService的实例,然后在MyWebService中构建了第二个实例,因此我不需要将任何对象传递给Web服务。或者,

  3. 我可以将LogGenerator及其所有属性和方法设为静态,因此我根本不需要创建任何实例。如果是这样,我创建日志消息时是否是线程安全的?

  4. 感谢您的任何输入!!!

1 个答案:

答案 0 :(得分:1)

您可以在启动Web服务时使用单例模式来识别它,并在Windows服务上添加事件侦听器。当然,这只适用于只有一个Web服务实例的情况。