ASP. NET Основная ошибка захвата и отображения внутри Program.cs и Startup.cs - PullRequest
2 голосов
/ 17 июня 2020

Я переношу свое приложение на другой хостинг и не могу его настроить.

Я создал пустое приложение asp. net core 2.1 и развернул его на хостинге, и оно работает. После этого я добавил строку подключения в базу данных и попытался прочитать из нее, и она тоже работает. Затем я развернул свое уже работающее приложение на этом хостинге, и оно не работает. Единственная проблема, я вижу, что что-то не так внутри Program.cs или Startup.cs, но как я могу отобразить try/catch ошибку, которую я поместил в эти файлы?

1 Ответ

1 голос
/ 17 июня 2020

Вы не можете отобразить HTML страницу с ошибкой в ​​веб-браузере, потому что на этом этапе приложение не настроено / не работает правильно.

Правильный подход - исследовать журналы ошибок, где бы они ни хранятся (зависит от вашего хостинговая компания). Если это невозможно, возможно, вы можете взломать свой путь и сделать ошибку записи приложения в текстовые файлы в его собственных папках.

Другая часть проблемы, вам нужно заключить инициализацию в блок try/catch, чтобы регистрировать ошибку. Есть хороший пример, как это сделать на Serilog.AspNetCore интеграции странице :

using Serilog;

public class Program
{
    public static int Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
            .Enrich.FromLogContext()
            .WriteTo.Console()
            .CreateLogger();

        try
        {
            Log.Information("Starting web host");
            CreateHostBuilder(args).Build().Run();
            return 0;
        }
        catch (Exception ex)
        {
            Log.Fatal(ex, "Host terminated unexpectedly");
            return 1;
        }
        finally
        {
            Log.CloseAndFlush();
        }
    }

Вам просто нужно изменить этот код, чтобы записать в файл с расширением Serilog.Sinks.File. Примеры: здесь .

var log = new LoggerConfiguration()
    .WriteTo.File("log.txt", rollingInterval: RollingInterval.Day)
    .CreateLogger();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...