Я никогда ранее не развертывал службу WCF на IIS 6.У меня есть служба, которую я развертываю на IIS 6, используя конфигурацию по умолчанию как часть проекта WCF.С тех пор я упростил настройку, думая, что это могло быть проблемой.Вот ошибка, которую я получаю, если просматриваю службу в браузере:
Ошибка HTTP 403.1 - запрещено: доступ запрещен.
Моя конфигурация сейчасвыглядит следующим образом:
<system.serviceModel>
<services>
<service name="MyCompany.WebServices.MyService">
<endpoint address="" binding="basicHttpBinding" contract="MyCompany.WebServices.IMyService" />
</service>
</services>
</system.serviceModel>
Если я пытаюсь добавить его в качестве ссылки в ASP.NET MVC, я получаю следующее:
Произошла ошибка при загрузке 'http://ws.mycompany.com/MyService.svc'. Запрос не выполнен с состоянием HTTP 403: запрещено.Метаданные содержат ссылку, которая не может быть разрешена: «http://ws.mycompany.com/MyService.svc'. HTTP-запрос был запрещен при использовании схемы аутентификации клиента« Аноним ».Удаленный сервер возвратил ошибку: (403) Запрещено.Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.
Есть идеи, что может происходить?
ОБНОВЛЕНО:
Кажется, это проблема конфигурации в моем окне IIS 6.Я предположил бы это, потому что я создал совершенно новое приложение WCF ASP.NET 3.5 и развернул его по новому URL-адресу http://ws.unitedoneresources.com/Service1.svc.. Если я пытаюсь вызвать эту службу, я получаю ту же ошибку HTTP, что и выше.Полная конфигурация службы следующая:
<system.serviceModel>
<services>
<service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="wsHttpBinding" contract="WcfService1.IService1">
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfService1.Service1Behavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Опять же, это совершенно новое приложение WCF ASP.NET 3.5, поэтому я ничего не изменил в самом проекте.