2012-08-23 30 views
5

Mam 2 usługi wcf zarówno hostowane w IIS na tym samym komputerze. Usługa A jest wywoływana przez klienta i używa BasicHttpBinding z zabezpieczeniami transportowymi i NTLM credentialtype. Usługa A musi wywołać usługę B, która jest również hostowana w IIS, ale używa WsHttpBinding z zabezpieczeniami transportowymi i NTLM credentialtype.Przekaż referencje z jednej usługi wcf do innej usługi wcf

Usługi IIS są skonfigurowane do korzystania ze zintegrowanego uwierzytelniania systemu Windows.

Pierwsza próba Mam 403. wiadomość:

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. 

Jest to normalne, ponieważ kiedy nawiązać połączenie z eksploatacji do komunikacji B tożsamość puli aplikacji jest używany.

Podczas mojej drugiej próby próbowałem podszyć się pod połączenie do usługi B, ale wtedy problem polega na tym, że cały kod w operacji jest wykonywany pod kontem dzwoniącym. To konto nie ma uprawnień ACL na serwerze, a udostępnianie tych uprawnień nie jest opcją. następujący błąd jest rejestrowany:

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)) 

Jak mogę rozwiązać ten problem bez zmiany ACL bezpieczeństwo użytkownika lub tożsamość puli aplikacji?

Odpowiedz

Powiązane problemy