2008-09-07 74 views
1

我有一個運行各種系統監視操作的windows服務。但是,在運行SNMP相關檢查時,我總是得到一個NullReference異常。當通過用戶界面(在我的用戶名和密碼下)運行時,代碼運行良好,但總是作爲服務運行的錯誤。我已經嘗試以不同的用戶帳戶(包括我的)運行服務,但沒有運氣。我嘗試用調用PowerShell cmdlet get-snmp(來自/ n NetCmdlets)來替換SNMP監視代碼,但這會產生相同的錯誤。排除服務中的NullReference異常

我正在使用的應用程序是PolyMon

任何想法?

回答

2

調試的一些方法:

  • 有沒有在Windows事件的任何其他信息日誌?
  • 我相信你應該能夠聽到某種全局異常事件,比如Windows服務中的Application_Exception。我不記得確切的名字,但你可以從那裏獲得轉儲堆棧跟蹤。
  • 您應該能夠在服務模式下開始調試項目。

一些代碼片段/堆棧跟蹤/信息肯定會有所幫助。

2

在觸發異常之前,您可以將調試器附加到正在運行的進程。這應該會讓你更好地瞭解應用程序的情況。

1

一對夫婦的,我們已經看到的東西 - 更多關於VS服務互動之間的差異,但可以幫助...

之一。我們已經看到,似乎不相關的事情是什麼是對的區別用戶與系統路徑。

我們已經看到的另一件事與臨時文件有關 - 我們的服務是在windows \ temp目錄下創建大量文件 - 當它創建了65000個這樣的文件時,我們追蹤了這個文件,從而達到了什麼限制目錄可以容納...

的問候, 克里斯

1

我以前解決這些類型的問題,如果你還沒有找到答案,我建議如下:

  • 啓用所有第三方應用程序和庫使用的是這樣跟蹤/日誌錯誤記錄到文件而不是stdout或stderr。很多時候,你會發現這些線索。
  • 您的Windows服務可能依賴於某些Windows網絡在啓動之前設置的位置。這可能是由於環境(PATH,如其他人所建議的)或由於其他服務的「依賴性」所致。

Jay .........