2
私のasp.net mvc 3アプリケーションでは、いくつかのエラー処理を行いました。ローカルコンピュータで正常に動作します。しかし、ホスティングでは、おそらくiisは独自のエラーページでエラービューを置き換えます。私は思うし、私はほぼResponse.TrySkipIisCustomErrors
のためだと確信しています。asp.net mvc 3でのエラー処理は、ホスト上で正しく動作しません。
しかし、Response.TrySkipIisCustomErrors
をtrue;
に設定しても効果はありません。
web.configファイル
<customErrors mode="Off"></customErrors>
Global.asaxの私が好きなホスティングハンドルerrros上でIISを取得するには、このコードを書き換える方法
void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
Response.Clear();
Server.ClearError();
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
Response.TrySkipIisCustomErrors = true;
var routeData = new RouteData();
routeData.Values["controller"] = "Errors";
routeData.Values["action"] = "ServerError";
var httpException = exception as HttpException;
if (httpException != null)
{
Response.StatusCode = httpException.GetHttpCode();
switch (Response.StatusCode)
{
case 403:
routeData.Values["action"] = "Unathorized";
break;
case 404:
routeData.Values["action"] = "NotFound";
break;
}
}
IController errorsController = new ErrorsController();
var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
errorsController.Execute(rc);
}
。
あなたはMVCのエラーを処理する適切な方法ではないので、多くの答えを得ることはありません。私はちょうど私がここで説明したように適切なエラー処理に切り替える前に、似たような解決策でたくさん苦労しました:http://blog.gauffin.org/2011/11/how-to-handle-errors-in-asp-net -mvc/ – jgauffin
ここで私の答えをチェック:http://stackoverflow.com/questions/6033681/how-to-override-httperrors-section-in-web-config-asp-net-mvc3/8403396#8403396 –