У меня следующая проблема:
У меня есть две службы WCF, обе из которых используют basicHttpBinging, определенный как:
<binding name="DefaultBasicBinding" closeTimeout="01:00:00" openTimeout="01:00:00"
receiveTimeout="01:00:00" sendTimeout="01:00:00" maxReceivedMessageSize="2147483647">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows"/>
</security>
</binding>
В файле web.config у меня также есть следующие строки:
< authentication mode="Windows"/>
< serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
Тогда у меня есть приложение silverlight, которое вызывает ServiceNo1.На стороне сервера выполняется сервисный метод.В ее теле ServiceNo1 и ServiceNo2 вызываются как клиент.
ServiceNo1 client1 = new ServiceNo1();
client1.ExecuteNextMethod1();
ServiceNo2 client2 = new ServiceNo2();
client2.ExecuteNextMethod2();
И это прекрасно работает на locahost.Когда это публикуется на dev - начинаются проблемы.
Когда сервисные методы выполняются в методе, вызванном приложением silverlight, генерируется исключение:
Exception type:
System.ServiceModel.Security.MessageSecurityException
Message:
The HTTP request is unauthorized with client authentication scheme 'Negotiate'.
The authentication header received from the server was 'Negotiate,NTLM'.
Похоже, учетные данные Windows не передаются.
Настройки, перечисленные выше, также доступны на dev.На обоих серверах (localhost & dev) в IIS установлена «Только аутентификация Windows».
Никто не может мне помочь?