我有一個用C#.NET框架3.5編寫的Windows服務,並想知道檢查服務的先前關閉是否正常的最佳方法。檢查Windows服務是否被強制關閉或崩潰
啓動服務後,應該檢查最後一次關機是否正常(通過服務管理中的停止服務按鈕),或者有人剛剛殺死了進程(或者由於某種原因而不是與服務本身直接關聯而崩潰)。
我想過在啓動的服務的硬盤上寫加密的XML,然後用一些值編輯它被停止服務時。就這樣,在我下次再次啓動服務後,我可以檢查XML並查看在關閉期間是否以正確的方式編輯了值,如果不是,我會知道該進程已被殺死或崩潰。
這種方式看起來太不可靠,不是一個好習慣。你有什麼建議?
澄清: 該服務所做的是它位於服務器上並偵聽來自客戶機的連接。建立連接後,它將通過Web服務與遠程數據庫進行通信,並確定它們是否有權連接(並因此使用作爲調用者的應用程序)。保護的一個方面是併發檢查,如果我將限制設置爲5個工作站,我將TcpClient連接從Windows服務保持爲活動狀態,假設有5個工作站,並且第六個工作站無法連接。
如果我殺了服務流程,並重新啓動它,連接都走了,我對工作站上運行5「行貨」的應用程序,現在也有將要採取的5個5個免費的連接插槽。
你爲什麼不能檢查您的WebService? – Arthur 2009-11-12 13:38:44