OnStart未在.Net 1.1 Windows服务中调用

时间:2009-01-27 17:39:10

标签: service .net-1.1

我有一个.Net框架1.1 Windows服务,可以在一台服务器上运行,但另一台服务器上没有调用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 :(得分:0)

如果正在调用OnInit,则覆盖它并自己设置处理程序

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

如果未调用OnInit,则将AutoEventWireup =“true”添加到&lt;%@ Page部分可能会有所帮助。

答案 1 :(得分:0)

如果您正在将跟踪写入EventLogTrace侦听器,则第二台计算机上的服务帐户可能没有足够的权限来访问事件日志。看看我对这个问题的回答:

Windows Service running but event logs not working

OnStart事件中发生了哪些事件表明事件未触发?

答案 2 :(得分:0)

对于阻止服务实例的构造函数运行的单个服务器,这最终成为一个非常模糊的问题。