IIS 7 WCF Web服务通过HTTPS提供404错误

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

该网站的绑定如下:

IIS 7站点绑定

当调用http://127.0.0.1:8088/Public/PublicDataService.svc时,我得到了预期的响应:

你已经创build了一个服务。

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

同样调用任何Service方法都有效,有一个叫做CanConnect的最基本的方法,它只是返回“true”

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

真正

当使用https时,结果如下。

https://127.0.0.1/Public/PublicDataService.svc

你已经创build了一个服务。

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

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

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

无法find该资源。

说明:HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。 请检查以下URL并确保拼写正确。

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

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

这让我完全陷入困境,怎么可以调用.svc的工作,但是其内部的方法给404呢? 为了使事情更令人困惑,这是工作…事实上,我甚至不知道什么时候停止,即如果它对应于代码版本或服务器补丁等。

网站的实际configuration是这样的:

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

有很多其他的服务直接在根目录下运行,在http和https下运行正常。

任何想法可能会导致这一点。

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

这两个答案是解决scheme:

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

而相反

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

奇怪的是,它曾在http和https一次,然后刚刚停止….一定有其他一些其他configuration的变化..

编辑:完整性的实际修复

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

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