簡體   English   中英

C#Windows服務無法快速啟動

[英]C# Windows Service fails to start fast enough

我有一個C#Windows服務。 OnStart()方法包含3行,他們所做的就是啟動一個線程。 類本身沒有會導致延遲的靜態對象。 它就像服務一樣簡單。 我的代碼由自制密鑰簽名。

編輯:我只是發現裝配沒有簽名,剩下的就是。 它使用了一些已簽名的程序集,但服務本身卻沒有。

此代碼在虛擬機內運行,只要主機運行緩慢並且此VM正在啟動,該服務將無法啟動此錯誤:

等待ServiceName服務連接時達到超時(30000毫秒)。

將服務設置為延遲啟動會修復它,但這是一個很長的延遲,這非常煩人。 有沒有其他人有.NET服務(2.0)這個問題?

OnStart方法:

protected override void OnStart(string[] args)
{
    Thread startThread = new Thread(new ThreadStart(StartThread));
    startThread.IsBackground = true;
    startThread.Start();
}

StartThread方法,其中我所做的就是調用另一個類,以便OnStart不必等待靜態變量初始化或結束構造函數方法。

private void StartThread()
{
    Worker mainThread = new Worker(this);
    mainThread.RunWorker();
}

謝謝。

考慮轉動AutoLog = false。 我已經看到這個標志可以導致你描述的超時。

我認為這很可能是由於您對可執行文件的強名稱簽名。 一般來說,在可執行文件上執行操作並不是一種好習慣( 請參閱此處 )。 我在我的一個項目中遇到了同樣的問題,其中一個可執行文件花費了大量的時間來啟動,並且結果是由於強大的名稱簽署了可執行文件(.NET 2.0)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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