在Windows XP中,當我們的服務因未知原因未能啓動時,MessageBox.Show()是提示用戶的可行方法。但是,在Vista和更高版本中,服務不再顯示此消息,這是可以理解的,因爲大多數情況下,使用對話框阻止服務是不可取的。什麼(非阻塞,最好)MessageBox.Show()的替代品可用於服務?用於C#服務的MessageBox.Show()的替代方法
0
A
回答
2
你有兩個基本的選擇:
創建在系統托盤中運行用戶特定的啓動應用程序。此應用程序將連接到服務並從服務接收消息(這與防病毒程序的運行方式類似)。
將所有消息和例外寫入事件日誌。您可以將應用程序事件日誌用於關鍵問題以及特定於應用程序的事件日誌,以獲取信息或診斷消息。
上述選項並不相互排斥,您應該始終執行#2。
2
5
的Windows服務應寫入Windows事件時,他們遇到的錯誤日誌。 最好是應用程序日誌。
您需要爲服務創建一個事件源,並且爲此需要管理員權限,因此應在安裝期間完成。
1
聲明:
private static TraceSource _traceSource = new TraceSource("YourSourceName");
用法,看MSDN:
_traceSource.TraceEvent(...);
配置:
<system.diagnostics>
<sources>
<source name="YourSourceName" switchValue="All" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="eventLog" />
</listeners>
</source>
<trace autoflush="true">
<listeners>
<add name="eventLog" />
</listeners>
</trace>
<sharedListeners>
<add name="eventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="SourceName" />
</sharedListeners>
</system.diagnostics>
1
記錄只有一個告知用戶關於服務問題的正確途徑。 事件日誌將服務優先登錄系統。
1
通常會使用EventLog進行記錄(例如,服務啓動/停止和錯誤等)。
如果您需要額外的跟蹤,請使用System.Diagnostics.Trace或Debug,然後使用類似DebugView的工具進行監視。
相關問題
- 1. 用於服務器端PDF查看的替代方法?
- 2. 用於C#和.NET技術的ASTA服務器的替代方案
- 3. 用於C++的ORG替代方案
- 4. Asp.net WebApi方法代替AngularJs服務
- 5. C#Windows服務替代
- 6. 替代Web服務C#
- 7. 替代基於Java/Spring的Web服務
- 8. 從c到C++的替代方法
- 9. RIA服務的動態替代方案?
- 10. IIS SMTP服務的替代方案
- 11. Java應用服務器替代方案
- 12. 與open_basedir共享服務器上的CURLOPT_FOLLOWLOCATION的替代方法ON
- 13. 用於服務方法的GUI
- 14. Scala/Play 2.5:適用於替代方法的重載方法
- 15. 用於與IE8兼容的JavaScript Object.keys()方法替代方法
- 16. 棄用com.apple.eawt.ApplicationListener的替代方法有什麼替代方法
- 17. 服務類的finish()方法的替代方法?殺死它死了
- 18. 在C#中調用虛擬方法的替代方法
- 19. g:formatDate服務中的替代
- 20. GetDesktopWindow替代的服務
- 21. Windows服務的替代
- 22. 解決方案的C++替代算法
- 23. Emacs中C鍵的替代方法?
- 24. C++中的compute_face_descriptor()替代方法
- 25. 目標c中DWORD的替代方法?
- 26. 替代更快的方法fscanf在c + +?
- 27. C類型轉換的替代方法?
- 28. void * C#中的替代方法
- 29. C#中的替代方法是什麼#
- 30. 用於並行迭代的宏的替代方法?
如何寫入EventLog? –
你正試圖解決什麼問題?您是否打算通過服務提示交互式用戶?您確定服務是問題域的最佳模式嗎? – catfood
我們已經寫入了事件日誌和位於%APPDATA%內的日誌文件。我要求一種讓用戶知道出現問題的可視方式。 –