Asp.net mvc 偵錯與監控 - twMVC#2
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Asp.net mvc 偵錯與監控 - twMVC#2

  • 992 views
Uploaded on

...


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

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

2012-06-14

http://mvc.tw

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
992
On Slideshare
992
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
26
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. ASP.NET MVC 偵測監控與 Log 記錄 使用 ELMAH 與 NLog Kevin Tseng http://kevintsengtw.blogspot.com
  • 2. 你~!是怎麼知道系統發生錯誤呢? 2
  • 3. 你~!是怎麼知道系統發生錯誤呢? 3
  • 4. 發生錯誤的原因... 客戶…… 好一點,可以提供清楚資訊 普通的,會說剛剛做了什麼事 大部分,一問三不知或是… 4
  • 5. 發生錯誤的原因... 客戶…… 好一點,可以提供清楚資訊 普通的,會說剛剛做了什麼事 大部分,一問三不知或是… 5
  • 6. 遇到錯誤時...開發人員好像都這樣反應 1. 在我的機器明明就可以動啊! 2. 一定是你的資料有問題。 3. 你到底是輸入了什麼? 4. 以前從來不會這樣啊! 5. 昨天明明會動的啊! 6. 一定是還沒更新到最新版本. 7. 怎麼可能~ 8. 這一定是機器的問題。 9. 有 bug 是正常的!XD 6
  • 7. 程式開發人員掌握多少資訊? 7 • 如何得知錯誤的發生? • 發生什麼樣的錯誤? • 什麼地方發生錯誤? • 錯誤發生的原因?
  • 8. 工欲善其事 必先利其器 程式開發人員的清醒時間是有限的, 不應該把這寶貴的時間浪費在無盡的錯誤上。 善用工具!更有效的掌握發生錯誤的原因 8
  • 9. ELMAH Error Logging Modules and Handlers for ASP.NET
  • 10.  官網:http://code.google.com/p/elmah/  ELMAH(錯誤日誌記錄模組和處理常式)是一個應用廣泛的 錯誤記錄的裝置。它可以添加到一個正在運行的 ASP.NET Web Application。  應用在 ASP.NET WebForms 與 ASP.NET MVC 網站上。 ELMAH:Error Logging Modules and Handlers 10
  • 11.  記錄系統中幾乎所有未處理的異常例外  可遠端瀏覽這些由ELMAH所記錄下來的異常例外  可遠端瀏覽異常例外記錄的完整細節,包含stack trace  可知道系統錯誤黃頁的完整資訊  可以透過電子郵件的方式寄發錯誤通知  提供 RSS,由 RSS 可以獲取最近的 15 則記錄 ELMAH 在不必插入或是改變你的程式碼情況下,ELMAH提供以下的功能: 11
  • 12.  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
  • 13. ELMAH Dashboard 13
  • 14. ELMAH Log Details 14
  • 15. ELMAH Log Details 15
  • 16. DEMO:使用 NuGet 為專案安裝 ELMAH 16
  • 17. DEMO:將記錄資料存到 SQL Server 17
  • 18. DEMO:關閉系統錯誤黃頁 18
  • 19. 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
  • 20.  安裝 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 的重大資安弱點
  • 21. 修正 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>
  • 22. DEMO:errorFiltering 排除 404 錯誤 NO! 22 Remember Me !
  • 23. DEMO:無視 ELMAH 安全性設定的實例 23
  • 24. ELMAH 的安全性 24
  • 25. DEMO:ELMAH的安全性設定 25
  • 26. NLog Advance .NET Logging
  • 27.  官網:http://nlog-project.org/  ELMAH 是用來作為日誌記錄,主要工作是捕捉未處理的異常 (UnHandler Exception),所以有處理的異常就無法捕 捉(try…catch..)。  NLog 讓我們可以在程式裡去處理異常時,依據異常的狀況 而給予不同的等級,NLog 除了處理記錄的儲存外還可以再 依據使用者所定義的等級做後續不同處理方式的操作。 NLog 27
  • 28.  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
  • 29.  Trace:用於追蹤,可以在程式裡需要追蹤的地方將訊息以Trace傳出。  Debug:用於開發,於開發時將一些需要特別關注的訊息以Debug傳出。  Info:訊息,記錄不影響系統執行的訊息,通常會記錄登入登出或是資料的 建立刪除、傳輸等。  Warn:警告,用於需要提示的訊息,例如庫存不足、貨物超賣、餘額即將不 足等。  Error:錯誤,記錄系統實行所發生的錯誤,例如資料庫錯誤、遠端連線錯 誤、發生例外等。  Fatal:致命,用來記錄會讓系統無法執行的錯誤,例如資料庫無法連線、 重要資料損毀等。 NLog rules – 記錄的等級 29
  • 30. DEMO:使用 NuGet 安裝 NLog 30
  • 31. DEMO:將 NLog 訊息儲存在 SQL Server 31
  • 32. DEMO:設定並使用 Email 寄發 Log 訊息 32
  • 33. Log Reporting Dashboard Darren Weir
  • 34.  提供一個整合 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
  • 35. DEMO:設定 ELMAH 與 NLog 35
  • 36. DEMO:Log Reporting Dashboard 36
  • 37. 使用 ELMAH 記錄系統中的未處理異常資訊 允許遠端瀏覽 ELMAH 前必須做好安全性的設定 使用 NLog 記錄系統中任何處理訊息 使用 Log Reporting Dashboard 統一讀取 Log 資料 總結 - ASP.NET MVC 偵測監控與 Log 記錄 37
  • 38.  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
  • 39. mrkt的程式學習筆記 -系統記錄與效能監測 39 http://kevintsengtw.blogspot.tw/p/blog-page_30.html
  • 40. 我敢跟妳賭,十年後 …… 我連 LOG 是什麼都不知道,照樣活得很好。
  • 41. 謝謝各位 ! 41
  • 42.  我們熱愛 Web 開發技術,並樂於分享 ASP.NET MVC 開發心得  已成功建立數個灘頭堡的經驗,深知 MVC 開發模式條理分明,有 利於分工與管理,想推薦給尚未了解的開發人員  不願意看到 MVC 叫好不叫座,我們樂意透過經驗交換來破除導入 障礙 42 為何組成 twMVC
  • 43.  A quite simple http://mvc.tw/  But, it’s still under-construction now  43 twMVC 資訊分享
  • 44.  每週小型聚會,不特定主題  固定於每週四 19:30-21:30,不改時間,逢國定假日暫停一次  議程不會提前排定,以當天參加者最近的心得分享為主  舉辦不定期研討會 44 twMVC 做哪些事推廣 ASP.NET MVC 技術
  • 45.  預先設定主題的中大型會議,主題提前於 mvc.tw 上公告  原則上一個月排定一次,因場地關係會設定報名人數上限 45 twMVC 不定期研討會
  • 46. 46 本次線上問卷 http://www.accupass.com/Question/522076701012640