0
美好的一天!試圖解決問題。我使用的處理網站上的所有錯誤的方法(該方法在一個人的博客上發現)處理所有錯誤
的Global.asax
protected void Application_Error(object sender, EventArgs e)
{
HttpContext ctx = HttpContext.Current;
Exception ex = ctx.Server.GetLastError();
ctx.Response.Clear();
RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext;
IController controller = new CategoryController();
var context = new ControllerContext(rc, (ControllerBase)controller);
var viewResult = new ViewResult();
var httpException = ex as HttpException;
if (httpException != null)
{
switch (httpException.GetHttpCode())
{
case 404:
viewResult.ViewName = "Error404";
break;
case 500:
viewResult.ViewName = "Error500";
break;
default:
viewResult.ViewName = "Error";
break;
}
}
else
{
viewResult.ViewName = "Error";
}
viewResult.ViewData.Model = new HandleErrorInfo(ex, context.RouteData.GetRequiredString("controller"), context.RouteData.GetRequiredString("action"));
viewResult.ExecuteResult(context);
ctx.Server.ClearError();
}
當我在錄音室開始的項目,導致錯誤。
RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext;
例外:
無法轉換類型 '
System.Web.DefaultHttpHandler
' 的對象類型 'System.Web.Mvc.MvcHandler
'
一旦我停止調試(按Shift我那個代碼獲得異常+ F5)。此方法運作良好,並處理任何錯誤。但在項目開始時,導致錯誤。尋找這些主題的解決方案,但未找到此問題。請幫助。
[HandleError]
public class CategoryController : Controller
{
// some methods
}
小心全局變量;甚至在全球範圍內利用日誌記錄。 – Greg 2013-03-08 16:55:26