所以我有一個C#的Windows服務,在一些沒有互聯網接入的系統將無法啓動。它嘗試啓動,但在服務啓動之前超時。我無法在任何開發環境中重現此問題,但在其他系統(通常是w2k3)上已多次查看它。windows服務導致系統沒有互聯網訪問根證書更新
當我把我的服務進入調試模式時,我所做的第一件事就是在本地pc上創建一個日誌文件,但是這個文件永遠不會被創建,所以我相信OnStart代碼甚至永遠不會被調用。
在一個系統中,我們看到了一個事件日誌條目導致我們這個知識庫文章:http://support.microsoft.com/kb/317541
因此,通過停止根證書更新服務或設備連接到互聯網,我們的服務下面的文章現在開始。另一個有趣的事情是,我們有3個服務都以幾乎相同的代碼開始,但它始終是3箇中的特定一個,無法啓動。這裏是我們的代碼OnStart方法:
if (args.Length > 0)
{
if (args[0].ToLower().Equals("debug"))
{
string AppLog = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
string locallogpath = Settings.Settings.ServiceLogFileLocation.ToString();
if (!Directory.Exists(locallogpath))
{
Directory.CreateDirectory(locallogpath);
}
LogFileName = Path.Combine(locallogpath, AppLog + ".htm");
try
{
_logFile = new StreamWriter(new FileStream(LogFileName, System.IO.FileMode.Create));
_logFile.WriteLine(htmlHeader + "<span class=lognormal>Service Started!</span><br>");
_logFile.Close();
}
catch { }
IsDebug = true;
}
}
我的問題是什麼可能我們可能會做會導致發生,因此在沒有互聯網連接可用失敗的根證書更新?
感謝您的信息......我不認爲我們的任何程序集都已簽名,但我必須檢查確定。 – BigTundra 2010-10-08 13:31:40
我檢查過,我們確實在簽署我們的一個組件。這似乎是問題。謝謝! – BigTundra 2010-10-13 00:04:12
非常好!很高興我能幫上忙;我知道我討厭有這樣的事情,我不知道他們爲什麼發生這種事情! – 2010-10-13 03:41:25