You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Windows服务启动时NetworkInterface.GetAllNetworkInterfaces()返回空,求依赖服务名称

问题解答

核心依赖服务

确实存在负责网络接口初始化的Windows内置服务,核心的两个是:

  • Network List Service(服务内部名称:Netman):负责收集、维护系统中所有网络接口的信息,是网络接口枚举的基础服务。
  • Network Location Awareness(服务内部名称:NlaSvc):依赖于Netman,负责识别网络接口的状态与位置信息,确保接口数据被正确加载。

你的服务启动时如果这两个服务未初始化完成,就可能导致NetworkInterface.GetAllNetworkInterfaces()返回空列表。

WiX配置服务依赖

在WiX中可以直接通过ServiceDependency元素添加依赖,确保你的服务在上述核心网络服务启动后再启动,示例配置如下:

<ServiceInstall
  Id="YourServiceInstall"
  Name="YourServiceName"
  DisplayName="Your Service Display Name"
  Type="ownProcess"
  Start="auto"
  ErrorControl="normal"
  Description="Your service description">
  <ServiceDependency Id="Netman" />
  <ServiceDependency Id="NlaSvc" />
</ServiceInstall>

sc triggerinfo的适用性

sc triggerinfo可以配置服务的启动触发器(比如设置为网络可用时启动),它的作用是延迟服务启动直到网络连接就绪,但并不严格依赖特定服务的初始化状态。如果你的问题根源是网络接口信息未被系统收集完成,直接依赖Netman和NlaSvc的可靠性会更高;如果只是需要等待网络连接建立,sc triggerinfo也能起到一定作用,但无法完全替代服务依赖的精准性。

内容的提问来源于stack exchange,提问作者Christian St.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 08:57:15