2010-07-08 3 views
0

라이브러리에 웹 서비스 코드를 실행하는 Windows 서비스가 있습니다. 구조는 다음과 같이이다 :Windows 서비스의 웹 서비스 참조 문제

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() 
문제는 내가 MyWindowsService에 정보를 추가하지 않으면 MyServiceLibrary에 대한 모든 엔드 포인트를 찾을 수 없습니다에 대한 오류를 얻고있다

.exe.config도. 이것을 막을 수있는 방법이 있습니까? 가능한 경우 설정 파일을 서로 분리하여 보관하고 싶습니다.

답변

0

MyServiceLibrary.dll.config의 구성이로드되지 않습니다. 웹 서비스 끝점 구성을 MyService.exe.config로 이동합니다.

+0

끝점 구성을 MyWindowsService.exe.config로 이동했는데 피하려고하는 부분이 제대로 작동했습니다. MyServiceLibrary.dll.config에서만 끝점 구성을 유지하고 싶습니다. 구성 파일이로드되지 않는 이유는 무엇입니까? – dstr

+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를 사용하는 경우 대체 솔루션을 사용할 수도 있습니다. . –

0

Windows 서비스에서 웹 서비스를 호출 하시겠습니까? 이 경우 Windows 서비스는 웹 서비스 어셈블리 (DLL)를 참조하지 않아야합니다. 대신 웹 서비스가 호스팅되는 위치를 가리키는 Windows 서비스 프로젝트에 서비스 참조를 추가해야합니다. 그런 다음 Windows 서비스는 웹 서비스의 또 다른 클라이언트 일뿐입니다.

+0

정확하게 이런 것은 아닙니다. 내 질문을 업데이트했습니다. 혼란스러워서 죄송합니다. 프로세스는 다음과 같습니다. MyWindowsService는 MyServiceLibrary.Method()를 호출하고 MyServiceLibrary.Method()는 WebService.Method()를 호출합니다. – dstr