Итак, у меня есть служба Windows C #, которая в некоторых системах, где нет доступа к Интернету, не запускается.Он пытается запустить, но время ожидания до запуска службы.Я не могу воспроизвести проблему в любой среде разработки, но я видел ее несколько раз в других системах (обычно w2k3).
Когда я переводю свой сервис в режим отладки, первым делом я создаю файл журнала на локальном компьютере, но этот файл никогда не создается, поэтому я считаю, что код 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;
}
}
Мой вопрос: что мы могли бы сделать, что могло бы привести к обновлению корневого сертификата и, следовательно, к сбою, когда интернет-соединение недоступно?