我很努力讓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。 – 2009-06-22 12:20:03
版本是IIS 6.0 – Rashack 2009-12-07 12:17:24
也請參考http://stackoverflow.com/questions/9588265/understanding-wcf-windows-authentication – Lijo 2012-10-24 05:45:33