指定网络名称的格式无效:系统重启时出现 HTTPListener 错误

The format of the specified network name is not valid : HTTPListener error on system restart

我在 c# 中实现了一个 Http Listener 作为 windows 服务。 windows 服务设置为在机器重新启动时自动启动。当我在安装后手动启动该服务时,http 侦听器工作正常并且它响应它收到的请求。但是,当服务在系统重启时启动时,出现以下错误:

System.Net.HttpListenerException (0x80004005): 指定网络名称的格式无效

我在 listener.Start() 上收到此错误。

http监听的代码是这样的:

HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://myip:port/");
listener.Start();

我从 已经提出的问题中得到了建议。如果我按照答案中给出的内容进行操作,它仍然不起作用。 此外,我试过 运行ning:

netsh http show iplisten

在 powershell 中,列表为空。即使 http 侦听器工作(当我第一次安装该服务并 运行 它时),此命令的输出也是空列表。所以我认为这不是问题。

任何建议都会很有帮助。

回答我自己的问题。似乎还有一些其他服务需要 运行 才能启动 http 侦听器。 windows 开始我的服务时,这些还没有开始。我找到了两种解决方案,一种是使用延迟启动

sc.exe config myservicename start=delayed-auto

另一种是在启动http监听器的时候进行try catch,如果失败,过几秒再试。就我而言,时间至关重要,所以我使用第二种方法,因为它比第一种方法启动侦听器的时间快约 2 分钟。