[英]Windows Service not running after installing
我創建了Windows服務,以便在服務啟動時發送郵件。 該服務工作正常,就像我調試服務並通過代碼運行它時發送郵件一樣。 但是我安裝它后該服務無法正常工作。 我安裝該服務后沒有發送任何郵件。
誰能建議我解決方案?
當作為服務帳戶運行時,服務極有可能缺少執行一項或多項操作的權限。
檢查Windows事件日志中是否有任何相關的錯誤消息。 作為測試,您可以將服務配置為以登錄時使用的同一用戶身份運行(只是確保問題是基於權限的,因此不要將該配置保持活動狀態,因為這是一個重大的安全漏洞)。
調試服務有點困難。 使用try..catch
塊以每種方法將消息寫入文件; 例如
try
{
..
}
catch(Exception ex)
{
SaveMessage(ex.ToString());
}
保存消息的方法是:
static void SaveMessage(string s)
{
StreamWriter sw = new StreamWriter(@"C:\service_exceptions_file.txt", true);
sw.WriteLine(s);
sw.Close();
}
然后,您將看到問題出在哪里。
您也可以通過上述方法在代碼中添加一些消息,以查看代碼的哪些部分正常工作
在您的Main()
方法中,只需在ServiceBase.Run(ServicesToRun);
之前添加以下行ServiceBase.Run(ServicesToRun);
:
#if DEBUG
while(!Debugger.IsAttached)
{
Thread.Sleep(1000);
}
#endif
然后安裝您的服務並啟動它。 啟動時,將調試器附加到服務的進程(Debug Menu => Attach to process),您應該可以對其進行調試。
啟動服務之前,請不要忘記設置斷點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.