2017-04-04

在 Visual Studio Web 專案增加異常處理


示範用的是 VS 2007, 但其它本版的 Visual Studio 操作過程幾乎是完全相同.



首先在項目中增加全域應用程式類別 Global.asax



在 Global.asax 中找到 Application_Error, 裡面放進送給自己 Mail Code.

Exception 是一定要有.

Dns.GetHostName() 可以知道是哪台機器送出來的.

HttpContext.Current.Request.Url 可以知道是哪個網頁有問題.

完成後只要系統有任何 Exception, 都會 Mail 出來.



但還有個很大的問題, 就是系統會把 Exception 的資訊傳給使用者, 包含程式碼. 萬一 Exception Code 位置有敏感資料, 如系統 id password 那就麻煩大了.



製作一個異常顯示頁面, 就是 Exception 發生時想讓使用者看到的畫面.

然後到 Web.config 裡找到 system.web, 把 customErrors 裡面的 defaultRedirect 指向異常畫面.

如此萬一有 Exception 發生, 就不再出現有 Code 但使用者覺得莫名其妙的畫面.



沒有留言: