Обработка ошибок в Razor Pages ASP. NET Core 3.1 ConfigureServices services.AddDbContext <..> (..) метод - PullRequest
0 голосов
/ 19 февраля 2020

Наш SQL Сервер будет время от времени не работать, что приведет к появлению страницы ошибки 500 код состояния http. Мы используем Razor Pages / ASP. NET Core 3.1. Можно ли изящно зафиксировать эту ошибку и по-прежнему отображать страницу, которая извлекает данные из базы данных (нужно делать это независимо от среды производства или разработки)? Страница использует DI для доступа к базе данных через AddDbContext <..> (..) в методе ConfigureServices в Startup.cs. Другой вопрос: подключается ли приложение бритвенных страниц к SQL серверу, вызывая AddDbContext (..), или это делается в методе CreateModel OnGet? Я попытался _context.Database.CanConnect () внутри метода OnGet, но где захватить выброшенное исключение?

    public void ConfigureServices(IServiceCollection services)
    {
            services.AddRazorPages();
            services.AddDbContext<SampleContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SampleContext")));

    }

    public class CreateModel : PageModel
    {
        private readonly SampleContext _context;

        public CreateModel(SampleContext context)
        {
            _context = context;
        }

        public IActionResult OnGet()
        {   
            //if (_context.Database.CanConnect() == false)
            //    throw new Exception("Cannot connect to SQL Server.");

            var x = _context...
            return Page();
        }
    }

...