2012-08-23 2 views
5

동일한 컴퓨터에서 IIS에 2 개의 wcf 서비스가 모두 호스팅되어 있습니다. 서비스 A는 클라이언트에 의해 호출되며 전송 보안이있는 BasicHttpBindingNTLM credentialtype을 사용합니다. 서비스 A는 IIS에서 호스팅되는 서비스 B를 호출해야하지만 전송 보안이있는 WsHttpBindingNTLM credentialtype을 사용합니다.하나의 wcf 서비스에서 다른 wcf 서비스로 자격 증명 전달

IIS는 Windows 통합 인증을 사용하도록 구성됩니다.

나는 (403) 금지 메시지를있어 첫 번째 시도 :

System.ServiceModel.Security.MessageSecurityException : The HTTP request was forbidden with client authentication scheme 'Ntlm'. 
System.Net.WebException: The remote server returned an error: (403) Forbidden. 

나는 서비스 B에 서비스 A에서 전화 사용되는 응용 프로그램 풀의 신원을 할 때 때문 정상입니다.

두 번째 시도에서 서비스 B에 대한 호출을 가장했으나 문제는 호출자 계정에서 작업의 모든 코드가 실행된다는 것입니다. 이 계정에는 서버에 대한 ACL 사용 권한이 없으며 이러한 사용 권한을 제공하는 것은 옵션이 아닙니다. 다음 오류가 기록됩니다

System.IO.FileLoadException : Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE)) 

가 어떻게 보안은 ACL의 또는 응용 프로그램 풀 ID 변경하지 않고이 문제를 해결 수 있을까?

답변