C# 使用https的WCF服务

C# 使用https的WCF服务,c#,web-services,wcf,https,C#,Web Services,Wcf,Https,我尝试使用https运行WCF服务。以下代码适用于http App.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> </configuration&g

我尝试使用https运行WCF服务。以下代码适用于http

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup> 
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>
因此,我尝试在https上运行此操作的目的是将uri更改为使用https,并将
WebHttpSecurityMode.Transport
添加到
WebHttpBinding

而不是

using (var serviceHost = new WebServiceHost(typeof(service), new Uri("http://localhost:8083")))
是的

using (var serviceHost = new WebServiceHost(typeof(service), new Uri("https://localhost:8083")))
而不是

var secureWebHttpBinding = new WebHttpBinding() { Name = "secureHttpWeb" };
是的

var secureWebHttpBinding = new WebHttpBinding(WebHttpSecurityMode.Transport) { Name = "secureHttpWeb" };

我没有收到异常,但无法访问端点。我缺少什么?

您是否已将SSL证书绑定到主机?HTTPS需要证书。不,我没有那样做。我可以通过密码来完成吗?(我不想更改配置,因为我不知道代码与配置的对应关系)。我可以使用自签名证书吗?演示如何使用自签名证书执行此操作。是的,您可以使用自签名SSL证书。这篇文章很有帮助:谢谢你们。您提供的链接实际上是我创建测试应用程序的步骤。因此,如果您将此添加为答案而不是注释,我可以将其标记为正确答案:)
var secureWebHttpBinding = new WebHttpBinding(WebHttpSecurityMode.Transport) { Name = "secureHttpWeb" };