簡體   English   中英

Windows Service在安裝后未運行

[英]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.

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