Несколько лет назад я построил и развернул систему на XP, которая включала пользовательский письменный сервис, который общался с локальным экземпляром SQL Express 2008 года (который также имел зависимость от CLR). В то время я настроил настраиваемую службу, чтобы она зависела от запуска службы Express, и все выглядело хорошо.
Перенесемся на эту неделю, когда мой клиент звонит мне, чтобы отладить, почему что-то не работает должным образом (и, видимо, не было уже какое-то время - очень долгая история).
Я увидел, что при перезагрузке машины 7 раз из 10 все работало нормально. Для тех 3 из 10, когда произошел сбой, моя пользовательская служба жаловалась на такие вещи, как:
Но затем при ручном перезапуске моей настраиваемой службы (после перезагрузки компьютера) ошибки не возникали.
Таким образом, кажется, что когда XP сообщает, что система SQL Express была запущена и работала, она иногда не была полностью запущена и что возникает неожиданное состояние гонки, которое убивает мои предположения о порядке зависимости службы XP.
Итак, мои вопросы:
What does it mean when the SQL Express instance announces to the XP service system that it is up and running?
Does it mean all components have been initialized and are ready to work, or is more of a "Hello world" statement?
Наконец, я также заметил, что мой клиент загрузил на компьютер несколько других программ, которые, вероятно, выявили / вызвали состояние гонки, которое я вижу. И да, мы также начали обсуждать, что потребуется, чтобы переместить их с XP на W7.
Один из вариантов - установить параметры восстановления для службы. После сбоя перезапустите его через короткое время.