служба windows вызывает обновление корневого сертификата в системе без доступа к интернету - PullRequest
1 голос
/ 06 октября 2010

Итак, у меня есть служба 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;
            }
        }

Мой вопрос: что мы могли бы сделать, что могло бы привести к обновлению корневого сертификата и, следовательно, к сбою, когда интернет-соединение недоступно?

1 Ответ

1 голос
/ 06 октября 2010

Существуют ли какие-либо сборки, подписанные сертификатом, участвующие в работе этого сервиса? Они могут инициировать последовательность событий при проверке подписей, что может привести к тому, что Windows потребуется проверить состояние корневых сертификатов.

Я предполагаю, что если вам нужно запустить уязвимую службу на неподключенном сервере, ваш единственный выбор - оставить службу обновления корневого сертификата остановленной.

Полагаю, ваш лог-код не имеет к этому никакого отношения.

...