Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ASP.NET MVC 偵錯與監控 -twMVC#2

twMVC
June 14, 2012

ASP.NET MVC 偵錯與監控 -twMVC#2

程式開發人員如何確切掌握錯誤的發生與錯誤發生的原因,

講解如何為 ASP.NET MVC 網站增加偵測監控以及 Log 記錄的功能。

2012-06-14

http://mvc.tw

twMVC

June 14, 2012
Tweet

More Decks by twMVC

Other Decks in Technology

Transcript

  1. 遇到錯誤時...開發人員好像都這樣反應 1. 在我的機器明明就可以動啊! 2. 一定是你的資料有問題。 3. 你到底是輸入了什麼? 4. 以前從來不會這樣啊! 5.

    昨天明明會動的啊! 6. 一定是還沒更新到最新版本. 7. 怎麼可能~ 8. 這一定是機器的問題。 9. 有 bug 是正常的!XD 6
  2.  記錄系統中幾乎所有未處理的異常例外  可遠端瀏覽這些由ELMAH所記錄下來的異常例外  可遠端瀏覽異常例外記錄的完整細節,包含stack trace  可知道系統錯誤黃頁的完整資訊 

    可以透過電子郵件的方式寄發錯誤通知  提供 RSS,由 RSS 可以獲取最近的 15 則記錄 ELMAH 在不必插入或是改變你的程式碼情況下,ELMAH提供以下的功能: 11
  3.  Microsoft SQL Server  Oracle  SQLite (version 3)

    database file  Microsoft Access  Loose XML files  RAM (in-memory) …… Default  SQL Server Compact Edition  MySQL  PostgreSQL ELMAH 支援的儲存裝置 12
  4. customError 的重大資安弱點 <customErrors mode="On" defaultRedirect="~/Error/Unknown"> <error statusCode="404" redirect="~/Error/NotFound" /> <error

    statusCode="500" redirect="~/Error/internal" /> </customErrors> 黑暗執行緒 - 【重要提醒】請全面檢視並修改web.config customErrors! http://blog.darkthread.net/post-2010-09-20-fix-customerrors-now.aspx 小朱® 的技術隨手寫 - [ASP.NET] ASP.NET 零時差攻擊 – POET 原理與防禦措施 http://www.dotblogs.com.tw/regionbbs/archive/2010/09/21/asp.net.poet.securi ty.vulnerability.aspx Will 保哥- ASP.NET 發現重大資安弱點影響範圍涵蓋 ASP.NET 1.0 ~ 4.0 http://blog.miniasp.com/post/2010/09/19/Security-Hack-Exposes-Forms- Authentication-in-ASPNET.aspx
  5.  安裝 ASP.NET 更新程式 黑暗執行緒 - 【重要消息】ASP.NET安全弱點更新程式出爐了! http://blog.darkthread.net/blogs/darkthreadtw/archive/2010/09/29 /asp-net-security-update.aspx 

    處理錯誤,並回傳一致的HTTP狀態 如果是用 Global.asax 內的 Application_Error 事件 來捕捉 HTTP 錯誤時,所有錯誤都須回傳相同的HTTP狀態  回傳錯誤頁時,將回應時間拉長 修正 customError 的重大資安弱點
  6. 修正 customError 的重大資安弱點 <!-- for ASP.NET 1.0-3.5 (non SP1) -->

    <configuration> <system.web> <customErrors mode="On" defaultRedirect="~/Error" /> </system.web> </configuration> <!-- for ASP.NET 3.5 SP1 and 4.0 --> <configuration> <system.web> <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error" /> </system.web> </configuration>
  7.  官網:http://nlog-project.org/  ELMAH 是用來作為日誌記錄,主要工作是捕捉未處理的異常 (UnHandler Exception),所以有處理的異常就無法捕 捉(try…catch..)。  NLog

    讓我們可以在程式裡去處理異常時,依據異常的狀況 而給予不同的等級,NLog 除了處理記錄的儲存外還可以再 依據使用者所定義的等級做後續不同處理方式的操作。 NLog 27
  8.  Files – single file or multiple, with automatic file

    naming and archival  Event Log – local or remote  Database – store your logs in databases supported by .NET  Network – using TCP, UDP, SOAP, MSMQ protocols  Command-line console – including color coding of messages  E-mail – you can receive emails whenever application errors occur  ASP.NET trace  … and many more NLog targets – 支援多種的儲存目標 28
  9.  Trace:用於追蹤,可以在程式裡需要追蹤的地方將訊息以Trace傳出。  Debug:用於開發,於開發時將一些需要特別關注的訊息以Debug傳出。  Info:訊息,記錄不影響系統執行的訊息,通常會記錄登入登出或是資料的 建立刪除、傳輸等。  Warn:警告,用於需要提示的訊息,例如庫存不足、貨物超賣、餘額即將不 足等。

     Error:錯誤,記錄系統實行所發生的錯誤,例如資料庫錯誤、遠端連線錯 誤、發生例外等。  Fatal:致命,用來記錄會讓系統無法執行的錯誤,例如資料庫無法連線、 重要資料損毀等。 NLog rules – 記錄的等級 29
  10.  提供一個整合 ELMAH,NLog,log4net,ASP.NET Health Monitoring 記錄訊息的平台  ASP.NET MVC 2

     Log Reporting Dashboard for ASP.NET MVC http://www.codeproject.com/Articles/104112/Log-Reporting- Dashboard-for-ASP-NET-MVC  Adding the Log Reporting Dashboard to your ASP.Net MVC app (with MVC Turbine) http://www.youtube.com/watch?v=Hicjp5MODpI 什麼是 Log Reporting Dashboard 34
  11.  ELMAH http://code.google.com/p/elmah/  NLog http://nlog-project.org/  Log Reporting Dashboard

    http://mvclogging.codeplex.com/ http://www.codeproject.com/Articles/104112/Log- Reporting-Dashboard-for-ASP-NET-MVC http://dotnetdarren.wordpress.com/ 參考資料 38
  12.  我們熱愛 Web 開發技術,並樂於分享 ASP.NET MVC 開發心得  已成功建立數個灘頭堡的經驗,深知 MVC

    開發模式條理分明,有 利於分工與管理,想推薦給尚未了解的開發人員  不願意看到 MVC 叫好不叫座,我們樂意透過經驗交換來破除導入 障礙 42 為何組成 twMVC