好的,刚刚想通了。
由于HttpListener是HTTP.sys的包装器,因此我们必须在开始使用 HttpListener 之前对其进行配置。
httpcfg.exe 用于 Windows Vista 之前的 Windows 版本。由于我使用的是 .net 4.5 HttpListener WebSockets,并且它仅适用于Windows8/windows Server 2012(如果您尝试在 Windows 的 pre-windows8 版本上使用 websockets,您将获得PlattaformNotSupportedException),我们应该使用netsh实用程序而不是httpcfg。
因此,要在 Windows 8 中配置 HTTP.sys,请打开 CMD 并向其中添加以下命令:
netsh http add sslcert ipport=IP:PORT certhash=YOU_CERT_HASH appid={GUID}
将IP和PORT更改为您希望使用证书保护的所需 IP 地址和端口号,以及使用证书指纹(证书应先前上传到 azure 门户)和GUID以及您从任何 GUID 生成工具生成的 GUID 的YOUR_CERT_HASH就像 Visual Studio 中的那个(工具 > 创建 Guid)。
在它之后,你只需要设置HttpListener.Prefix.Add("https://youIP:youPort/yourPath")
,你应该很好。
像我一样,有些人会问如何让它在Windows Azure上运行……您可以使用启动任务在您的角色启动之前运行此命令,并根据需要设置 HTTP.sys。
有关如何使用启动任务的更多信息,请查看 MSDN http://msdn.microsoft.com/en-us/library/windowsazure/hh180155.aspx上的此文档,有关httpcfg或netsh的更多详细信息,请查看此其他文档MSDN http://msdn.microsoft.com/en-us/library/ms733791.aspx