我有一个 Topshelf C# 服务,它必须在退出时恢复适配器 DNS 设置。我的停止/启动方法工作得很好,这段代码有效:
ManagementObject.InvokeMethod("SetDNSServerSearchOrder", DNS, null);
然而,关闭是一个问题,即使RequestAdditionalTime
我记录以下错误:
2016-11-30 15:10:53,427 [7] TRACE MyDNSService - DNSService Shutdown command received.
2016-11-30 15:10:53,677 [7] DEBUG MyDNSService - DNSService Error setting DNS: A system shutdown is in progress. (Exception from HRESULT: 0x8007045B)
所以看来操作系统正在阻止我调用ManagementObject.InvokeMethod
我受阻了。有没有办法解决这个问题?在启动时,我的服务检测到异常并恢复,但这需要太长时间。我真的很想能够优雅地关闭。