[英]Global.asax Application_Error not firing on IIS
我有一個ASP.NET MVC 2頁面。 在發生錯誤或異常期間,不會在IIS7上觸發Global.asax中的Application_Error方法。
**但是如果我從VS2010(localhost:someport)運行Web應用程序,則確實會觸發
我的代碼(C#):
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
string requestedUrl = HttpContext.Current.Request.Url.ToString();
Response.Clear();
// do something
Server.ClearError();
Server.Redirect("Error");
}
我的配置:
<customErrors mode="On" defaultRedirect="~/Error">
</customErrors>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
請幫忙。
這是因為您的Web配置設置將覆蓋默認行為。 您將需要禁用此設置(customErrors =“ Off”並刪除defaultRedirect(或有條件地設置正確的狀態代碼,以使未設置的錯誤落入Application_Error事件)。如果禁用此設置,則可以處理Application_Error中的錯誤事件,然后重定向用戶或顯示該事件的消息此Web配置設置正在處理錯誤,只有未處理的錯誤才會冒泡到該事件。
還有一件事。
不會為IIS上標記為HandleError屬性的類/方法中引發的異常觸發Application_Error。
如果您在asp.net開發服務器上運行您的應用程序卻會觸發,但不適用於真正的IIS。 (我陷入了這個陷阱)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.