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

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

Avatar for twMVC twMVC
June 14, 2012

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

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

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

2012-06-14

http://mvc.tw

Avatar for twMVC

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