我正在.Net Windows服务(使用Microsoft.Owin v4.0.1.0)中使用SignalR。由于应用程序的要求,我需要能够停止并稍后重新启动SignalRHub。我这样做的代码是
HubWebApp = WebApp.Start(HubURL)
然后再来
:HubWebApp.Dispose()
然后稍后:
HubWebApp = WebApp.Start(HubURL)
问题是,当我在较早处置WebApp停止SignaRHub后第二次启动WebApp时,出现错误:
“无法监听前缀'http://172.16.4.55:8080/',因为它 与计算机上的现有注册冲突”。
因此,当我处置WebApp时,它似乎并没有释放URL注册,而当我重新启动它时,它拒绝在该URL上使用新的侦听器。
我尝试弄乱netsh http,但是删除不起作用,并且show不显示现有注册。
处置WebApp时如何释放URL注册?
答案 0 :(得分:0)
从未找到注销URL的解决方案。我最后要做的是,如果重新启动集线器会引发异常(Environment.Exit(1)),则对服务进行编码以使错误退出。然后在服务管理器中将服务配置为在错误退出时自动重新启动。
这真是个头戴纸袋的想法,但这是我目前最好的答案。