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?