我在网络服务器上的IIS6上有一个简单的WCF服务托管。
当我在我的网络中的服务器上使用以下绑定时,我得到了404,如果只是使clientCredentialType为None,它可以工作,也可以在我的机器上工作,为什么Windows身份验证在服务器上失败,404实际上意味着它甚至看不到端点,如果是代理问题,如何修复它。
<basicHttpBinding>
<binding name="HttpWindowsAuthentication"
maxReceivedMessageSize="1048576" bypassProxyOnLocal="true"
useDefaultWebProxy="false">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
感谢
答案 0 :(得分:2)
它可能与安全性有关,因为它在您更改clientCredentialType时起作用。
你得到404,是为了提高安全性,系统说“我找不到文件”,而不是说“是的,有一个带有该名称的文件,但你不能看到它”。
看起来正在进行wcf调用的用户无法访问svc文件,但是运行asp.net进程的用户会这样做。运行asp.net进程的用户用于匿名客户端。
以上假设默认设置。
答案 1 :(得分:0)
谢谢Shiraz
这是安全问题,我根本没有在WCF配置文件中指定Windows身份验证,mexHttpBinding也没有与Windows身份验证一起使用!!。
网络上的某些客户端错误地使用模拟,他们获得了401,所以我清除了IIS中的选项http://msdn.microsoft.com/en-us/library/aa292118%28VS.71%29.aspx