C# windows服務啟動時報錯服務沒有及時響應啟動或者控制請求,錯誤代碼1053


原因多種:

1. service程序有bug,自行寫測試方法排錯。

2. service程序使用System.Configuration.ConfigurationManager類庫嘗試讀取app.config下的配置項等

安裝服務之后System.Configuration.ConfigurationManager找到的路徑不再是原來的exe所在路徑,故不可使用;

可以另外寫xml或者Json配置文件絕對路徑讀取。

3.  OnStart方法響應邏輯花費過長時間,建議進行異步調用,如開啟子線程或使用timer,使用timer例如:

 1 System.Timers.Timer _timer = new System.Timers.Timer();
 2 protected override void OnStart(string[] args)
 3         {
 4             try
 5             {
 6                 int _interval = 1000 * 60 * interval;
 7                 _timer.Interval = _interval;
 8                 _timer.AutoReset = true;
 9                 _timer.Elapsed += new System.Timers.ElapsedEventHandler(Time_Elapsed);
10                 _timer.Enabled = true;
11                 WriteLog.SaveInfoLog("服務已啟動");
12             }
13             catch (Exception ex)
14             {
15                 WriteLog.SaveExceptionLog(ex.Message);
16             }
17 
18         }
19 private void Time_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
20         {
21             try
22             {
23                 if (!isRun)
24                 {
25                     //調用業務方法
26                 }
27             }
28             catch (Exception ex)
29             {
30                 WriteLog.SaveExceptionLog("Error:" + ex.Message);
31             }
32         }

4. 檢查.Net FrameWork版本。

5. 檢查ProjectInstaller的serviceInstaller控件屬性中的服務名稱是否與啟動的服務名一致。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM