2010-08-05 44 views
0

在這種情況下,我希望繞過我的正常錯誤日誌記錄,這將不會起作用,並且只需請求錯誤視圖併發送電子郵件。我不希望在所有控制器中複製這種特殊情況處理,並且在請求任何操作之前可能嘗試訪問數據庫。我應該在哪裏放置這個特殊的處理程序,如果不在控制器中,我該如何調用錯誤視圖?在MVC應用程序中處理不可用數據庫的場景

哦,是的,我使用Elmah來處理未處理的異常。

回答

1

嘗試使用的東西沿着這些在您的控制器

[HandleError(ExceptionType = typeof(SqlException), View = "SqlError")] 
Public Class ProductController: Controller { 
    public ViewResult Item(string itemID) 
    { 
      Item item = ItemRepository.GetItem(itemID); 
      return View(item); 
    } 
} 

現在線在你Views/Shared/文件夾,你可以創建一個名爲「SqlError.aspx」如果有一個SQL異常將返回查看。

我還建議在Global.asax文件中處理所有的應用程序錯誤「東西」。 IE:,做錯誤的電子郵件,錯誤日誌等

退房這太問題的一個想法
ASP.NET MVC Custom Error Handling Application_Error Global.asax?

部分
0

我不知道你的代碼,但假設日誌記錄中的一些全局錯誤處理的事情進行再編輯錯誤處理是這樣應該這樣做:

try 
{ 
    //logging 
} 
catch(SqlException) 
{ 
    //send email 
    return View("Error"); 
} 
相關問題