首页 > 解决方案 > 处理 Razor Pages ASP.NET Core 3.1 ConfigureServices services.AddDbContext<..>(..) 方法中的错误

问题描述

我们的 SQL Server 有时会关闭,从而导致 http 状态代码 500 错误页面。我们正在使用 Razor Pages/ASP.NET Core 3.1。是否可以优雅地捕获此错误并仍然显示从数据库中提取数据的页面(无论生产环境还是开发环境都需要这样做)?该页面使用 DI 通过 Startup.cs 中的 ConfigureServices 方法中的 AddDbContext<..>(..) 访问数据库。另一个问题是剃刀页面应用程序是通过调用 AddDbContext(..) 连接到 SQL Server 还是在 CreateModel OnGet 方法中完成?我在 OnGet 方法中尝试了 _context.Database.CanConnect() 但在哪里捕获抛出的异常?

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

标签: asp.net-corerazor-pages

解决方案


推荐阅读