Sto facendo fatica ad ottenere il servizio WCF in esecuzione su IIS sul nostro server. Dopo l'implementazione, viene visualizzato un messaggio di errore:WCF - Autenticazione di Windows - Le impostazioni di sicurezza richiedono Anonymous
Le impostazioni di sicurezza per questo servizio richiedono l'autenticazione "anonima" ma non sono abilitate per l'applicazione IIS che ospita questo servizio.
Desidero utilizzare l'autenticazione di Windows e pertanto l'accesso anonimo è disabilitato. Si noti inoltre che c'è aspNetCompatibilityEnabled (se questo fa alcuna differenza).
Ecco il mio 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>
Ho cercato in tutto l'Internet senza fortuna. Ogni indizio è molto apprezzato.
La domanda dovrebbe identificare quale versione di IIS sta utilizzando. –
La versione era IIS 6.0 – Rashack
Consulta http://stackoverflow.com/questions/9588265/understanding-wcf-windows-authentication anche – Lijo