Подтвердить что ты не робот

Как отображать ошибки с помощью ASP.NET Core

У меня довольно простой сайт, на котором я играю с использованием ASP.NET Core. Я запускаю приложение из командной строки, и веб-сайт возвращает статические файлы, но я продолжаю получать 500 ошибок, когда пытаюсь сделать запрос, который должен обрабатываться MVC. Как я вижу, что такое ошибка? Независимо от того, отображается ли ошибка в браузере или регистрируется на консоли, не важно, просто я хочу, чтобы узнать, что такое ошибка.

4b9b3361

Ответ 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, обязательно отключите ее после устранения проблемы. Это может дать хакеру все, что ему нужно, чтобы проникнуть на ваш сервер.