2009-01-27 60 views
1

我有一個.Net框架1.1 Windows服務在一臺服務器上工作,但在另一臺服務器上,OnStart方法沒有被調用。我有一個跟蹤語句作爲OnStart覆蓋的第一行,並沒有被執行。不會引發異常,並且Windows服務控制管理器認爲該服務已正確啓動。OnStart不在.Net 1.1中調用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> 
+0

你在哪裏寫你的跟蹤輸出? – Kev 2009-01-27 17:47:17

回答

0

這最終成爲一個單一的服務器,阻止服務實例的構造函數運行一個非常模糊的問題。

0

如果被調用的OnInit,然後覆蓋,並設置處理自己

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

的OnInit如果不叫,添加AutoEventWireup = 「true」 以<%@頁部分可能的幫助。

0

如果您將跟蹤寫入EventLogTrace偵聽器,則可能第二臺機器上的服務帳戶沒有足夠的權限訪問事件日誌。見我回答這個問題:

Windows Service running but event logs not working

什麼其他活動發生在的OnStart事件表明該事件不觸發?