【问题标题】:The format of the specified network name is not valid : HTTPListener error on system restart指定网络名称的格式无效:系统重启时出现 HTTPListener 错误
【发布时间】:2020-09-23 15:06:54
【问题描述】:

我已经在 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();

我收到了来自this 的建议,已经提出了问题。如果我遵循答案中给出的内容,它仍然不起作用。 此外,我尝试运行:

netsh http show iplisten

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

任何建议都会很有帮助。

【问题讨论】:

    标签: c# .net windows-services


    【解决方案1】:

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

    sc.exe config myservicename start=delayed-auto
    

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

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 2018-11-24
      • 2013-10-06
      • 2010-09-30
      • 2015-09-02
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多