簡體   English   中英

如何為ASP.NET Web應用程序實現事件記錄器?

[英]How to implement event logger for ASP.NET web application?

我有一個用C#編寫的ASP.NET Web應用程序。 它使用SQL Server 2008數據庫。 似乎有些SQL查詢會使SQL服務器死鎖,而且我也遇到了錯誤的SQL Server性能。 為了找出哪個,我想添加一個診斷事件記錄,但我不知道如何。 如果我正在編寫一個普通的Windows應用程序,我會使用Windows事件日志或僅使用簡單的文本文件。 所以我很好奇,如何從Web應用程序中做同樣的事情?

從ASP.Net Web應用程序進行日志記錄有很多選項。

NLog值得考慮,因為它運行良好,並根據嚴重性提供各種日志目標,包括文本文件,數據庫,電子郵件或GUI日志查看器(如Sentinel)

話雖如此,應用程序級日志記錄可能不是診斷SQL Server死鎖的最佳方法。 我建議從SQL Server Profiler開始執行該任務

使用SQL Server Profiler分析死鎖

.NET已經構建了自2.0版以來具有豐富功能和靈活配置的登錄系統。 您可以從MSDN上的這篇文章開始由於某些原因,大多數人不使用它,而更喜歡使用Log4net或NLog進行日志記錄。 首先是java日志工具的端口,其次是重新思考它。 我個人更喜歡使用TraceSource和過濾器。 ADO.NET本身也支持它。

在SQL端發生死鎖,ASP.NET無法了解全局。

我建議檢查你的查詢是否有一個WITH LOCK語句,並在刪除它之前搞清楚為什么要開始。

否則,如果您通過SQL Server診斷管理器發現了有問題的查詢...或者您可以完全在SQL端重現死鎖,請將WITH NOLOCK添加到該查詢。 Ť

他是迄今為止最簡單的解決方案,更好的解決方案包括首先找到解決僵局的根本原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM