Я изо всех сил пытаюсь запустить службу WCF на IIS на нашем сервере. После развертывания я получаю сообщение об ошибке:WCF - проверка подлинности Windows - Параметры безопасности требуют анонимного
Параметры безопасности для этой службы требуют аутентификации «Анонимный», но она не включена для приложения IIS, на котором размещена эта служба.
Я хочу использовать проверку подлинности Windows, и поэтому у меня отключен анонимный доступ. Также обратите внимание, что существует aspNetCompatibilityEnabled (если это имеет значение).
Вот мой web.config:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<bindings>
<webHttpBinding>
<binding name="default">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="Windows"/>
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="AspNetAjaxBehavior">
<enableWebScript />
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="defaultServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceAuthorization principalPermissionMode="UseWindowsGroups" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="xxx.Web.Services.RequestService" behaviorConfiguration="defaultServiceBehavior">
<endpoint behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding"
contract="xxx.Web.Services.IRequestService" bindingConfiguration="default">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" name="mex" contract="IMetadataExchange"></endpoint>
</service>
</services>
</system.serviceModel>
Я искал по всему интернету, не повезло. Любые подсказки очень ценятся.
Вопрос должен определять, какую версию IIS он использует. –
Версия была IIS 6.0 – Rashack
См. Http://stackoverflow.com/questions/9588265/understanding-wcf-windows-authentication too – Lijo