WCF SOAP over HTTPS,WCF测试客户端调用http地址,服务器响应404

WCF SOAP over HTTPS,WCF测试客户端调用http地址,服务器响应404,wcf,iis,soap,https,Wcf,Iis,Soap,Https,TL;DR版本位于底部 我构建了三个WCF web服务,一个使用.NET 4,两个使用.NET 3.5,由Android客户端使用。Android客户端使用ksoap2 Android执行调用。当服务完成并且客户端可以进行所有调用并从服务获取所有数据时,我们决定为web服务激活HTTPS通信。它们托管在运行IIS的服务器上 我不是唯一一个完成这项任务的人。我全职使用它,主要是Android客户端。我有两个同事,他们都有很多其他的责任。第一个主要涉及服务,第二个主要涉及服务器 我已经在互联网上阅读

TL;DR版本位于底部

我构建了三个WCF web服务,一个使用.NET 4,两个使用.NET 3.5,由Android客户端使用。Android客户端使用ksoap2 Android执行调用。当服务完成并且客户端可以进行所有调用并从服务获取所有数据时,我们决定为web服务激活HTTPS通信。它们托管在运行IIS的服务器上

我不是唯一一个完成这项任务的人。我全职使用它,主要是Android客户端。我有两个同事,他们都有很多其他的责任。第一个主要涉及服务,第二个主要涉及服务器

我已经在互联网上阅读了很多关于如何为WCF web服务启用HTTPS的指南、博客和文章,但我仍然无法完全解决这个问题。为了让Android客户端能够使用该客户端,我们仅限于使用basicHttpBinding,因为wsHttpBinding包含一些Android不支持的安全细节或其他内容。我不确定,但我在某个论坛上读过。如果我错了,我很乐意被纠正

好的,那么我将简要介绍一下我到目前为止所做的工作:

我已启用了传输安全性,这是绑定的外观:

为了能够调试它,我使用Wireshark截取消息,看看到底发生了什么。我发现在设置过程(握手、建立信任等)之后,客户机发送头并获得101 Continue响应,然后发布主体。这应该是正常的行为。但随后服务返回404notfound。Wireshark说完整的请求URI是http地址。我已经将服务器配置为使用https地址,那么为什么它要调用http地址呢

我尝试将端点的address和listenUri属性分别设置为https和http,反之亦然。如果我这样做,服务器将使用405方法Not Allowed响应请求

有什么办法解决这个问题吗?我错过了什么

我错过了什么

TL;DR版本如下

我用IIS托管了三个WCFSOAPWeb服务,一个使用.NET4,另一个使用.NET3.5。我正在尝试通过HTTPS从WCF测试客户端进行调用。我已经启用了传输安全、通过HTTPS发布元数据、安装了可信证书并在服务器上添加了HTTPS绑定


当我尝试从WCF测试客户端进行调用时,它会说没有端点在该地址侦听。Wireshark告诉我,它调用服务的http版本(即“http://[my address]”,而不是“https://[my address]”),尽管它配置为调用https地址。服务返回404notfound。如果我将服务的地址设置为https,将listenUri设置为http,则得到405 Method Not Allowed。如果我用另一种方式来做,它会说它不能被激活。我遗漏了什么?

我通过移除端点并使用
标记解决了这个问题,如下所示:

<protocolMapping>
  <add scheme="https" binding="basicHttpBinding" bindingConfiguration="basicHttps" />
</protocolMapping>

<serviceMetadata httpsGetEnabled="true" />
<endpoint address="" binding="mexHttpsBinding" contract="IMetadataExchange" />
There was no endpoint listening at https://[my service address] that could accept the message. This is often caused by an incorrect address or SOAP action.
<protocolMapping>
  <add scheme="https" binding="basicHttpBinding" bindingConfiguration="basicHttps" />
</protocolMapping>