我有一个网络服务,比如MyWebService
,我需要在Windows服务上托管它,比如MyWindowsService
。因此,在OnStart
中的MyWindowsService
方法中,我启动了MyWebService
。当MyWindowsService
启动时,我需要发送一条日志消息(从MyWindowsService
内部)到一个监听器,说明应用程序已经启动。此类日志消息由LogGenerator
生成。
在MyWebService
中,它还需要在触发某些事件时向侦听器发送日志消息,并且MyWebService
也会生成这些日志消息(从LogGenerator
内发送) }。
LogGenerator
有一些要配置的属性。现在我面临一些问题。
我不知道是否需要构建LogGenerator
的实例,在MyWindowsService
中配置此实例,然后将其传递给MyWebService
。如果是这样,那么我如何从托管Windows服务将对象传递给Web服务。或者,
我在LogGenerator
中构建了MyWindowsService
的实例,然后在MyWebService
中构建了第二个实例,因此我不需要将任何对象传递给Web服务。或者,
我可以将LogGenerator
及其所有属性和方法设为静态,因此我根本不需要创建任何实例。如果是这样,我创建日志消息时是否是线程安全的?
感谢您的任何输入!!!
答案 0 :(得分:1)
您可以在启动Web服务时使用单例模式来识别它,并在Windows服务上添加事件侦听器。当然,这只适用于只有一个Web服务实例的情况。