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 и т. Д.), Что позволит вам возвращать пользовательские сообщения для каждого типа ошибки.
Все это и многое другое находится в документации .