Как обрабатывать пользовательские ошибки с .Net Core 2.2 MVC - PullRequest
0 голосов
/ 14 мая 2019

Я видел на youtube, как обрабатывать пользовательские ошибки, но это было с web.config и в dotnet core 2.2, у него нет этого файла, или я не нахожу его через visual studio 2019.

1 Ответ

0 голосов
/ 14 мая 2019

ASP.NET Core не использует Web.config, если вы не размещаете его в IIS, и только для минимальной конфигурации модуля IIS.Пользовательская обработка ошибок осуществляется через конфигурацию промежуточного программного обеспечения в вашем методе Startup.Configure.Это на самом деле покрыто шаблоном проекта по умолчанию, поэтому странно, что по умолчанию у вас не включено что-то, из чего можно было бы работать.В любом случае, вы смотрите на что-то вроде:

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseDatabaseErrorPage();
}
else
{
    app.UseExceptionHandler("/Error");
}

, которое обычно направляет любое глобальное неперехваченное исключение в общую конечную точку /Error, которая может быть либо действием контроллера, либо страницей Razor.Скорее всего, вам понадобится немного больше гибкости, а также вы не захотите показывать фактический URL-адрес «ошибки» в браузере, поэтому вы, вероятно, наберете UseExceptionHandler с UseStatusCodePagesWithReExecute:

app.UseStatusCodePagesWithReExecute("/StatusCode","?code={0}");

Это сохранит URL без перенаправления и загрузит конечную точку /StatusCode при передаче определенного кода состояния (404, 400, 500 и т. Д.), Что позволит вам возвращать пользовательские сообщения для каждого типа ошибки.

Все это и многое другое находится в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...