В настоящее время у меня есть служба, которую я создал на своей машине, и она отлично работала локально, но при развертывании на нашем сервере Windows 2003 с использованием IIS 6.0 я получаю исключение:
HTTP-запрос не авторизован с
схема аутентификации клиента
'Anonymous'. Аутентификация
заголовок получен с сервера был
'Переговоры, NTLM'.
Быстрый взгляд на ошибку заставляет поверить, что это легко исправить, но до сих пор ни одно из исправлений не помогло мне.
Вот что я имею в Web.config моего сервиса:
<services>
<service name="WcfService2.Service1"
behaviorConfiguration="WcfService2.Service1Behavior">
<endpoint address="" binding="basicHttpBinding"
bindingName="basicBindingConfig"
contract="WcfService2.IService1"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="basicBindingConfig">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="WcfService2.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
Мой тестовый клиент имеет файл App.config со следующим:
<bindings>
<basicHttpBinding>
<binding name="basicBindingConfig_IService1">
<security mode="None">
<transport clientCredentialType="Ntlm"
proxyCredentialType="None" realm="" />
</security>
</binding>
</basicHttpBinding>
</bindings>
И мой тестовый клиентский вызов доступа:
Dim client As New ServiceReference1.Service1Client()
client.GetData()
Есть идеи, что здесь не так? Я попытался изменить тип Ntlm на Windows и None, ни один из которых не сработал. Я могу перейти к нему в браузере, и он выглядит нормально, но когда я действительно начинаю пытаться использовать его, я получаю вышеуказанную ошибку.