Наш 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();
}
}