簡體   English   中英

Windows關閉期間C#服務InvokeMethod失敗

[英]C# service InvokeMethod fails during Windows shutdown

我有一個Topshelf C#服務,退出時必須還原適配器DNS設置。 我的stop / start方法工作正常,此代碼有效:

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調用

我受阻了。 有沒有解決這個問題的方法? 在啟動時,我的服務會檢測到異常並恢復,但這花費的時間太長。 我真的很想能夠正常關機。

洛基,我只是重新創建了代碼的功能元素(記錄正在發生的事情),但是我沒有得到錯誤。 我將DNSServerSearchOrder設置為null並將其提供給管理對象的SetDNSServerSearchOrder方法。 https://github.com/paulsbruce/StackOverflowExamples/blob/master/PriorityShutdown/PriorityShutdown/MyService.cs

我唯一的附加建議是,您可以嘗試更改服務關閉順序的優先級,以查看是否有任何效果。 請參見以下線程: 系統關閉時,.NET Windows Services停止命令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM