私は一般的にASP.NETとMVCについてかなり新しいです。私は、ASP.NET MVCアプリケーションをASP.NET MVCコアに移行しています。私は、次の悪名高いエラーのHttpExceptionを処理することができたかつての枠組みの中で:HTTPエラー404.13のカスタムエラーページASP.NETコアMVC
HTTP Error 404.13 - Not Found
The request filtering module is configured to deny a request that exceeds the request content length.
私は現在、デフォルトでは30メガバイトで最大アップロード許容長を増やすことができます承知していますが、私の目標は提示することです何が起きたのかを説明するフレンドリなエラーページで、許可された制限を上げないでください。私は研究の数時間後にAsp.Netコアで、このための代替手段を見つけることができないよう
private void Application_Error(object sender, EventArgs e)
{
var ex = Server.GetLastError();
var httpException = ex as HttpException ?? ex.InnerException as HttpException;
if (httpException == null) return;
if (httpException.WebEventCode == WebEventCodes.RuntimeErrorPostTooLarge)
{
//handle the error
Response.Redirect("~/Error/UploadTooLarge"); //Redirect to my custom error page
}
}
:ASP.NETで
私は私のGlobal.asaxの上、次のコードでこれをやりました。 私は自分のStartup.csにいくつかのミドルウェアを接続する必要があると信じています.HttpExceptionを処理してリダイレクトするカスタムエラーページを実現するメソッドを設定しますが、本当にこの問題については迷っています。
私は正常な404などのHTTPエラーのカスタムエラーページのために、次のミドルウェアを使用するために管理している - が見つかりまたは403なし - 私のconfigureメソッドで次のように使用してForbiden:コントローラと並ん
app.UseStatusCodePagesWithReExecute("/Error/StatusCode{0}");
を:
public class ErrorController : Controller
{
public IActionResult StatusCode404()
{
return View(viewName: "CustomNotFound");
}
public IActionResult StatusCode403()
{
return View("CustomForbiden");
}
}
そして対応するビュー。しかし、404.13のエラー(アップロードが大きすぎる)は、現在のミドルウェアでは処理されません。私はIISがWebアプリケーションによって処理されないので、エラーを提示していると思う。
MVCコアの推奨事項。私はミドルウェアを削除し、 'httpErrors'モジュールを追加しました。各エラーのpathプロパティは' path = "/ Error/CustomAction"のような値を許可しています ""エラーコントローラでカスタムエラーページ/ビューを処理できます。 –
これは、ビジュアルスタジオとライブ/リモートで接続できることは素晴らしいことです。それ以外の場合は、ヒットまたはミスであり、公開/テストを繰り返していなければならず、ベストを願うことが本当の苦境です。 – razblack
私は不思議ですが、もしあなたがうろこシステムと言ってクライアントにメッセージを処理したいと思ったら、あなたはこのリダイレクトを起こしています。 – razblack