我遇到了启用AJAX的WCF服务的问题。
该服务配置如下:
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="secureWebHttpBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"></transport>
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="Shared.Services.AjaxServiceAspNetAjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Shared.Services.AjaxServiceServiceBehaviour">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service name="Shared.Services.AjaxService" behaviorConfiguration="Shared.Services.AjaxServiceServiceBehaviour">
<endpoint address="" behaviorConfiguration="Shared.Services.AjaxServiceAspNetAjaxBehavior" bindingConfiguration="secureWebHttpBinding" binding="webHttpBinding" contract="Shared.Services.AjaxService">
</endpoint>
</service>
</services>
</system.serviceModel>
在生产环境(IIS 7)上部署应用程序时会出现安全问题。
当我向ajax服务“serviceName.svc / js”请求url时,会出现一个Windows凭据提示。即使我请求“serviceName.svc”,服务描述页面也会正确显示。可能是IIS将... / js识别为子目录,它实际上不存在,并且由于它不知道应该应用哪个安全设置?我还在IIS管理页面中为目录和服务启用了所有身份验证类型。另外,我通过web.config启用了对该位置的匿名访问。整个应用程序是一个Intranet应用程序,受Windows身份验证btw保护。
提前致谢