2010-07-08 67 views
0

我有一个Windows服务,它在库中运行Web服务代码。该结构是这样的:Windows服务中的Web服务参考问题

MyWindowsService.exe (references to MyServiceLibrary.dll) 
MyWindowsService.exe.config 
MyServiceLibrary.dll (references to web service) 
MyServiceLibrary.dll.config (contains endpoint information about the web service) 

的过程是这样的:

MyWindowsService calls MyServiceLibrary.Method() 
MyServiceLibrary.Method() calls WebService.Method() 

问题是我收到约不是一个错误能够找到任何端点MyServiceLibrary,除非我给MyWindowsService添加信息.exe.config也是如此。有没有办法来防止这种情况?如果可能的话,我想保持配置文件彼此独立。

回答

0

MyServiceLibrary.dll.config中的配置未加载。将Web服务端点配置移至MyService.exe.config。

+0

我没有将端点配置移动到MyWindowsService.exe.config,它确实工作,我试图避免。我只想在MyServiceLibrary.dll.config中保留端点配置。任何想法为什么配置文件不会加载? – dstr 2010-07-08 07:57:02

+1

这只是.NET的工作原理。有关更多信息,请参见http://msdn.microsoft.com/en-us/library/ms229689(vs.71).aspx。有一个例外...配置部分和元素可以使用“configSource”属性移出到外部文件。有关示例,请参阅http://weblogs.asp.net/cibrax/archive/2007/07/24/configsource-attribute-on-system-servicemodel-section.aspx,如果您使用的是WCF,可能还有其他解决方案。 – 2010-07-08 15:04:18

0

您是否指您的Windows服务调用Web服务?如果是这种情况,那么Windows服务不应该引用Web服务程序集(DLL)。相反,您应该向Windows服务项目添加服务引用,指向托管Web服务的位置。然后,Windows服务只是Web服务的另一个客户端。

+0

这不完全是这样的。我更新了我的问题,对于混淆抱歉。该过程是这样的:MyWindowsService调用MyServiceLibrary.Method()和MyServiceLibrary.Method()调用WebService.Method() – dstr 2010-07-08 07:55:52