【问题标题】:WCF The remote server returned an error: (404) Not FoundWCF 远程服务器返回错误:(404)未找到
【发布时间】:2016-05-13 05:21:06
【问题描述】:

我有一个简单的 WCF 服务托管在网络服务器上的 IIS6 上。

当我在网络中的服务器上使用以下绑定时,我得到了 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>

谢谢

【问题讨论】:

    标签: wcf authentication http-status-code-404


    【解决方案1】:

    这可能与安全有关,因为它在您更改 clientCredentialType 时起作用。

    你得到 404,是为了提高安全性,系统说“我找不到文件”,而不是说“是的,有一个同名的文件,但你不能查看它”。

    看起来进行 wcf 调用的用户无权访问 svc 文件,但运行 asp.net 进程的用户可以。运行 asp.net 进程的用户用于匿名客户端。

    以上假设为默认设置。

    【讨论】:

    • 您好这是安全问题,由 1 解决-我只是没有在 WCF 中指定 Windows 身份验证
    【解决方案2】:

    谢谢设拉子

    这是安全问题,我只是没有在 WCF 配置文件中指定 Windows 身份验证,而且 mexHttpBinding 无法与 windows 身份验证一起使用!!。

    网络上的一些客户端错误地使用了模拟,他们得到了 401,所以我从 IIS 中清除了该选项,请参阅http://msdn.microsoft.com/en-us/library/aa292118%28VS.71%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多