종료 할 때 어댑터 DNS 설정을 복원해야하는 Topshelf C# 서비스가 있습니다. 내 시작/중지 방법은 잘 작동하고이 코드가 작동 : 그래서 그것을C# 서비스 InvokeMethod가 Windows 종료 중에 실패합니다.
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)
: 심지어 나는 다음과 같은 오류를 기록 RequestAdditionalTime
로, 문제가, 그러나,
ManagementObject.InvokeMethod("SetDNSServerSearchOrder", DNS, null);
종료입니다 OS가 내 전화를 차단하고있는 것 같습니다. ManagementObject.InvokeMethod
나는 당황합니다. 이 문제를 해결할 방법이 있습니까? 시작할 때 내 서비스가 이상을 감지하고 복구하지만 너무 오래 걸립니다. 정상적으로 종료 할 수 있기를 정말로 바랍니다.
답변을 찾을 수있는 것처럼 보입니다. http://stackoverflow.com/questions/5217246/how-to-delay-shutdown-and-run-a-process-in-window-service – Gurpreet
고마워, 불행히도 그것은 그것을 커버하지 않습니다. 서비스 종료 방법은 잘 실행됩니다. OS 종료 때문에 서비스를 종료하지 않기 때문에 DNS를 설정하는 호출을 차단하는 OS입니다. – Rocky
OS가 다시 돌아오고 서비스가 시작될 때 마커를 설정하면 DNS를 복원해야합니다. 어쨌든 기계가 꺼져있을 때 DNS를 재설정하지 못한다. – Gurpreet