OnStart не вызывается в .Net 1.1 Windows Service - PullRequest
1 голос
/ 27 января 2009

У меня есть служба Windows .Net Framework 1.1, которая работает на одном сервере, но на другом метод OnStart не вызывается. У меня есть инструкция Trace в качестве первой строки в переопределении OnStart, и она не выполняется. Исключений не было, и диспетчер управления службами Windows считает, что служба запущена правильно.

У кого-нибудь есть идеи, что может помешать вызову метода OnStart?

Редактировать: вот настройки .config для вывода трассировки.

<configuration>
    <system.diagnostics>
        <trace autoflush="true" indentsize="4">
            <listeners>
                <add name="LogFileWriter" type="System.Diagnostics.TextWriterTraceListener,System" 
                        initializeData="c:\interface.log" />
            </listeners>
        </trace>
    </system.diagnostics>
</configuration>

Ответы [ 3 ]

0 голосов
/ 27 января 2009

Если вы записываете свою трассировку в прослушиватель EventLogTrace, вполне возможно, что служебной учетной записи на втором компьютере не хватает прав для доступа к журналу событий. Смотрите мой ответ на этот вопрос:

Служба Windows работает, но журналы событий не работают

Какие другие действия происходят в событии OnStart, которые предполагают, что событие не запускается?

0 голосов
/ 02 февраля 2010

Это оказалось очень неясной проблемой с одним сервером, которая не позволяла запускать конструктор для экземпляра службы.

0 голосов
/ 27 января 2009

Если вызывается OnInit, переопределите его и установите обработчик самостоятельно

protected override void OnInit(EventArgs e) {
  this.Start += new System.EventHandler(OnStart);
  base.OnInit(e);
}

Если OnInit не вызывается, добавление AutoEventWireup = "true" в раздел <% @ Page может помочь. </p>

...