У меня довольно простой сайт, на котором я играю с использованием ASP.NET Core. Я запускаю приложение из командной строки, и веб-сайт возвращает статические файлы, но я продолжаю получать 500 ошибок, когда пытаюсь сделать запрос, который должен обрабатываться MVC. Как я вижу, что такое ошибка? Независимо от того, отображается ли ошибка в браузере или регистрируется на консоли, не важно, просто я хочу, чтобы узнать, что такое ошибка.
Как отображать ошибки с помощью ASP.NET Core
Ответ 1
Добавьте промежуточное ПО страницы ошибок, как показано здесь:
app.UseDeveloperExceptionPage();
Ответ 2
Обновление для бета8:
В бета-версии 8 Microsoft изменила имя на UseDeveloperExceptionPage
. Поэтому, если вы хотите использовать ErrorPage, вызовите:
app.UseDeveloperExceptionPage();
Вот ссылка на связанную проблему Github. ErrorPageOptions
такие же, как в бета6/7.
Вы можете использовать
app.UseErrorPage(ErrorPageOptions.ShowAll)
до beta5 от Asp.Net Mvc.
По состоянию beta6, ErrorPageOptions.ShowAll
удален. Теперь вы можете использовать версию без параметров
app.UseErrorPage();
или создать объект ErrorPageOptions и указать, сколько строк вокруг ошибки вы хотите отобразить, установив SourceCodeLineCount.
app.UseErrorPage(new ErrorPageOptions() {SourceCodeLineCount = 100});
Дополнительная информация
Они удалили несколько свойств ErrorPageOptions
в этой фиксации.
До:
public class ErrorPageOptions
{
private bool _defaultVisibility;
private bool? _showExceptionDetails;
private bool? _showSourceCode;
private bool? _showQuery;
private bool? _showCookies;
private bool? _showHeaders;
private bool? _showEnvironment;
...
}
После:
public class ErrorPageOptions
{
public int SourceCodeLineCount { get; set; }
public IFileProvider FileProvider { get; set; }
...
}
Итак, теперь вы можете установить только количество строк исходного кода.
Ответ 3
Если вас не волнует, что ваши подробности об ошибках будут представлены миру, вы можете включить подробности об ошибках прямо в браузере без каких-либо изменений кода. (Это было проверено только в IIS 8.5
):
- В
IIS Manager
в левом разделе "Connections
" щелкните левой кнопкой мыши и выберите свойSite
. - В правой части
Feature View
откройтеError Pages
. - В крайнем правом разделе "
Actions
" нажмите "Edit Feature Settings
- В
Error Responses
обError Responses
выберите 2-ю,Detailed errors
, затем нажмитеOk
(или, если вы беспокоитесь о том, чтобы что-то рассказать миру, начните с 3-й опции, если вы можете открыть локальный браузер... т.е. localhost:...)
Этого должно быть достаточно для того, чтобы вы могли увидеть точную ошибку... Важно: Если вам приходилось использовать опцию средней Detailed errors
, обязательно отключите ее после устранения проблемы. Это может дать хакеру все, что ему нужно, чтобы проникнуть на ваш сервер.