我将在服务结构中托管WCF服务。 WCF服务之一在启动后在端口上启动HttpSelfHostServer
。我有时会收到错误:
URI'http://localhost:10503/'的注册已经存在。 在System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)处 在System.ServiceModel.Channels.CommunicationObject.EndOpen(IAsyncResult结果) 在System.Web.Http.SelfHost.HttpSelfHostServer.OpenListenerComplete(IAsyncResult结果)
在服务架构中,我认为框架可能会产生多种服务。我想知道是否有任何方法可以通过编程方式检查端口并检测到已注册了服务并自动将其删除?
答案 0 :(得分:1)
https://docs.microsoft.com/en-us/windows/win32/http/show-urlacl
Netsh http show Urlacl命令能够帮助我们检测保留的URl。但是,正如您所知,我们需要将权限提升给管理员,然后删除或添加特定用户和帐户的条目(管理员帐户可以直接删除职业并使用保留的URL)。
Netsh http add urlacl url=https://+:80/MyUri user=DOMAIN\user
delete urlacl url=https://+:80/MyUri
如果以编程方式完成此操作,则需要以管理员身份执行delete命令,该管理员可以直接删除职业并使用保留的URL。因此,我认为这是不可行的。
随时让我知道是否有什么可以帮助您的。