6

我有一个具有以下绑定的自托管(控制台应用程序)WCF REST 服务:

  • WebMessageEncodingBindingElement
  • HttpsTransportBindingElement(ManualAddressing=true,KeepAliveEnabled=true,AllowCookies=false,HostNameComparisonMode=Exact)

这通过 HTTPS URL(“ https://mylaptop/myendpoint ”)公开

我有一个自签名证书颁发给我使用 myServiceHost.Credentials.ServiceCertificate.SetCertificate 分配的“mylaptop”。证书添加成功,ServiceHost打开成功(无异常)。如果我输入“netsh http show servicestate”,我可以看到在https://mylaptop/myendpoint使用 HTTP.SYS成功注册

但是,当我向端点发出 GET 时,它不起作用。似乎套接字在获得有效的 HTTP 响应之前就被丢弃了。(FireFox 说“与服务器的连接已重置”,IE 说“无法显示网页”,如果我通过 Fiddler 发出请求,它会说“连接被远程主机强行关闭”)。

当我使用 HTTP 而不是 HTTPS 时,一切正常。

知道在 HTTPS 案例中可能出了什么问题吗?

4

2 回答 2

6

您可能需要使用 httpcfg.exe 使用已配置的 X.509 SSL 证书正确地使用 HTTP.SYS 保留端点。完成它的步骤记录在这里

于 2009-10-05T20:05:46.780 回答
6

或者使用HttpCfgGui - 一个更友好的界面来设置带有 HTTP.SYS 的服务器证书。这是我所有使用 WCF 进行 HTTP 的服务器上必须安装的。

于 2009-10-05T20:39:54.840 回答