IIS 7 WCF Webservices 通过 HTTPS 给出 404 错误

IIS 7 WCF Webservices 通过 HTTPS 给出 404 错误

我有一些在 IIS 7.5 下运行的 WCF web 服务,它们对 http 请求做出正确响应,但在使用 SSL 调用方法时响应 404(未找到)错误。

该站点的绑定如下:

IIS 7 站点绑定

打电话时http://127.0.0.1:8088/Public/PublicDataService.svc我得到了预期的回应:

您已创建一项服务。

要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用命令行中的 svcutil.exe 工具执行此操作,语法如下:etc

同样,调用任何服务方法都可以,有一个最基本的方法叫做 CanConnect,它只返回“true”

http://127.0.0.1:8088/Public/PublicDataService.svc/CanConnect

真的

当使用 https 时,结果如下。

https://127.0.0.1/Public/PublicDataService.svc

您已创建一项服务。

要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用命令行中的 svcutil.exe 工具执行此操作,语法如下:

https://127.0.0.1/Public/PublicDataService.svc/CanConnect

“/Public”应用程序中的服务器错误。

无法找到该资源。

描述:HTTP 404。您正在寻找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保其拼写正确。

请求的 URL:/Public/PublicDataService.svc/CanConnect

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.6.1055.0

这让我完全困惑了,为什么调用 .svc 可以工作,但其内部方法却给出 404?更令人困惑的是,它本来是可以工作的……事实上,我甚至不确定它什么时候停止的,也就是说,它是否对应于代码发布或服务器补丁等。

该网站的实际配置如下:

Webservices (this is the root of the application / where the Web.Config sits)
- Public (a windows directory, no addition config)

还有许多其他服务直接在根下运行,并且在 http 和 https 下均能正常运行。

对于可能导致此情况的原因,您有什么想法吗?

答案1

事实证明,这只是 web.config 文件中的一个错误。

SO 上的这两个答案是解决方案:

https://stackoverflow.com/a/26581326/1286358

反之亦然

https://stackoverflow.com/a/26539003/1286358

奇怪的是,它曾经在 http 和 https 上工作过,然后就停止了......一定是其他地方发生了一些其他配置更改......

编辑:实际修复完整性

以下内容在 web.config 中从“none”更改为“Transport”

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

相关内容