我最近更改了一个带有wcf服务的工作Web应用程序。发布之后我收到错误此服务的安全设置需要“匿名”身份验证,但是没有为承载此服务的IIS应用程序启用它。
在过去的五个小时里,我一直在网上搜索这个
的正面或反面我的anoynous授权未经检查......
以下是我的web.config中的Web服务部分,请帮助!!!
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IService1" >
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<!--http://localhost:2083/Service1.svc-->
<endpoint address="" binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IService1" contract="ServiceReference1.IService1"
name="WSHttpBinding_IService1">
<identity>
<dns value="issupport03" />
</identity>
</endpoint>
</client>
<services>
<service name="WcfService1.AjaxWcf">
<endpoint address="" behaviorConfiguration="WcfService1.AjaxWcfAspNetAjaxBehavior"
binding="webHttpBinding" contract="WcfService1.AjaxWcf" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="WcfService1.AjaxWcfAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WcfService1.AjaxWcfAspNetAjaxBehavior">
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
答案 0 :(得分:0)
检查运行应用程序池的标识。该用户可能无法访问其可能使用的任何资源。
答案 1 :(得分:0)
我建议您备份当前代码,然后从源代码管理恢复到以前的版本。构建并部署该版本,然后确保它在生产中工作。
如果可行,则将生产版本与备份版本区分开来。看看有什么变化。一点一点地改变它,直到它再次起作用。
答案 2 :(得分:0)
基本上我所做的是修复它是从wsHttpBinding更改为webHttpBinding:
<security mode="TransportCredential">
<transport clientCredentialType="Windows"/>
</security>
它现在有效,而且由于它在内联网上,我现在并不担心安全问题......但是,我真的希望我知道它为什么会破坏以及我应该采取什么措施来修复它... < / p>
感谢所有帮助过的人!!!