【问题标题】:WCF Rest service throwing http error 404 when accessing the link via https but working perfectly fine with httpWCF Rest 服务在通过 https 访问链接时抛出 http 错误 404,但使用 http 工作得很好
【发布时间】:2012-12-21 09:41:23
【问题描述】:

我有一个托管在 IIS 6.0(.NET 框架 4)中的 WCF REST 服务。 JAVA 服务正在调用此服务。 现在,当 Java 服务通过 http 访问此服务时,它可以正常工作,但使用 https 调用的时间则返回错误 404

“描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除”

我已验证 SSL 证书已安装,并且在 IIS 中托管的其他两个服务似乎不受影响。

现在我检查了我是否能够通过 https 域访问 .svc 文件。 HTTPS:.......服务别名/service.svc

在服务内部调用方法时会出现此问题。 HTTPS:.......服务别名/service.svc/服务方法名

现在我在另一台服务器上检查了它使用 https 可以正常工作。所以我的猜测是代码没有太大问题。 那么你们能告诉我是否有我遗漏的东西吗?我也需要这个服务在这个服务器上的 https 上运行。

此服务通过 POST 进行通信,而其他两个似乎未受影响的服务使用 GET。不知道这是否有任何意义。

【问题讨论】:

  • 您是否能够通过 https 从 .net 应用程序访问该服务?证书也是自签名证书吗?
  • 不,它也不适用于任何 .Net 应用程序。同样的问题。这是一个受信任的证书
  • 您可以考虑在您的服务上启用跟踪 (msdn.microsoft.com/en-us/library/ms733025.aspx) 以获得请求失败的确切原因。如果你能提供你的配置和一些示例代码来帮助你更多,那会更有帮助。

标签: c# .net wcf iis-6


【解决方案1】:

听起来您的 web.config 中缺少某些内容。您需要更改默认端点以支持加密或创建一个新端点。

<system.serviceModel>
    <bindings>
        <webHttpBinding>
            <binding>
                <security mode="Transport" />
            </binding>
        </webHttpBinding>
    </bindings>
</system.serviceModel>

【讨论】:

  • 但是如果确实是网络配置的问题,它不应该在另一台服务器上也失败吗?
  • 但是同样的代码可以在另一台服务器上运行。那么这真的是配置问题吗?
  • 重要提示:如果您刚刚升级到 .Net Framework 4.5 并且遇到了 Jay 描述的问题,那么您的原始 web.config 文件可能从来没有在其中包含 从安装 4.5 开始,它工作得非常好。显然 4.5 破坏了一些东西。非常感谢微软第 100 万次破坏你的更新。试图解决这个问题所花费的挫败感和时间只是放弃微软的另一个原因。
【解决方案2】:

如果您收到 404,它与证书或 https 无关。只需检查该方法是否配置正确,即您的服务合同中的[WebInvoke] 已正确提及方法名称。

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 2014-12-20
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多