2010-07-08 112 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