1
在我的ASP.NET MVC Web應用程序中,我嘗試使用404和403響應發送自定義錯誤頁面。我能夠使用Global.asax.cs中的以下代碼在本地IIS上執行此操作。不需要web.config支持。自定義403頁在一個環境中工作,而不是在另一個環境中
protected void Application_EndRequest()
{
if (Context.Response.StatusCode == 404)
{
Response.Clear();
var rd = new RouteData();
rd.DataTokens["area"] = "";
rd.Values["controller"] = "Error";
rd.Values["action"] = "NotFound";
IController c = new ErrorController();
c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
}
else if (Context.Response.StatusCode == 403)
{
Response.Clear();
var rd = new RouteData();
rd.DataTokens["area"] = "";
rd.Values["controller"] = "Error";
rd.Values["action"] = "Forbidden";
IController c = new ErrorController();
c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
}
}
但是,當我將它部署到我的測試環境時,這個相同的代碼不起作用。在我的測試環境中,我仍然收到403響應,但是我沒有看到自定義的禁止視圖。我只是從IIS獲取默認的403視圖。更奇怪的是,404視圖在這兩種環境下都能正常工作。我花了一整天的時間比較web.config文件和其他IIS設置,試圖確定我的測試環境有什麼不同,但沒有運氣。任何幫助將不勝感激。
是的,我無法訪問正確的資源。該響應的狀態代碼403就像它應該但瀏覽器中呈現的標記不是我的自定義視圖,就像當我訪問我的licall IIS時。我的本地IIS是v10,而測試環境是v7。 –