当前位置: 首页 > 编程语言 > C#

通过HTTPS共享的Windows服务托管WCF

时间:2023-04-10 23:04:49 C#

Windows服务通过HTTPS托管WCF我已经根据MSDN中的这些说明创建并配置了一个SSL证书。我收到了这个问题中列出的错误消息,但我不确定如何将该问题中接受的答案映射到我的App.config文件。配置文件的内容和服务本身在http上运行良好,只是问题出现在https上。我的App.config文件当前是:Windows事件日志中返回错误异常:服务启动失败。System.ServiceModel.AddressAlreadyInUseException:HTTP无法注册URLhttps://+:54321/MyService/。另一个应用程序已经用HTTP.SYS注册了这个URL。—>System.Net.HttpListenerException:无法侦听前缀“https://+:54321/MyService/”,因为它与计算机上的现有注册冲突。有人可以指导我如何启用它吗?我认为您正在连接两个不同的设置。Netsh可用于为SSL添加证书,但也允许应用程序在给定端口上侦听而无需在管理员帐户下运行。第二次设置异常目标。我以前没见过这个,但我想你已经为HTTP注册了这个端口,所以让我们尝试在另一个端口上使用(并注册)HTTPS或替换以前的注册。编辑:以提升的权限打开命令提示符(以管理员身份)。首先检查SSL证书是否分配给了正确的端口:netshhttpshowsslcert通过调用以下命令检查HTTP侦听是否已在该端口上注册:netshhttpshowurlacl如果是这样,请删除注册:netshhttpdeleteurlaclurl=http://+:54321/MyService再次添加注册,支持监听HTTPS:netshhttpaddurlaclurl=https://+:54321/MyServiceuser=domainuserNameUser是用来运行Windows服务的账号。如果是本地帐户,只需使用userName。注意:在https下,urlacl中的通配符似乎是强制性的。我们不能编写https://localhost:8733/...来匹配VisualStudios默认的httpurlacl。这可能是有道理的,因为请求的主机名在解密之前不可用。对于找到这篇文章的人来说,明显的原因不同,但症状相同。我运行了一个“始终有效”的应用程序,通过远程桌面或本地通过各种(未记录,因为我没想到会出现问题)组合运行它,登录和注销,并将其替换为重新编译但在其他方面相同的版本不同我得到相同的“另一个应用程序已经注册了这个URL......等等,等等”。显然(?)注册特定于正在运行的实例,并且在该应用程序关闭后仍然存在。(?)无论如何,Windows的一句老话“有疑问时重新启动”可以解决这个问题。由于未对应用程序本身进行任何更改,因此无需投诉。注销等也可能有效。这是在Windows10下——我从未在早期版本的Windows中看到过。在管理员模式下运行VisualStudio以关闭VisualStudio应用程序并在管理员模式下重新打开它应该就足够了。错误消失了。在非管理员模式下运行VisualStudio时发生HTTP错误。以上就是C#学习教程:WindowsService托管WCF通过HTTPS共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢