首页 新闻 搜索 专区 学院

关于net core网站启动问题

0
悬赏园豆:50 [待解决问题]

net core网站启动的时候,连接数据库,如果 这个时候 数据 库连接 不上,则net core网站 的运行会停止。这样的话,如果 服务器重启的话,netcore网站的启动比数据 库启动早的话,导致网站报错,既使后来数据库能够正常访问了,网站还是需要人工去重启一下才行。

这个不知道有什么办法,让net core在启动的时候 ,既然数据库连接不上,也不会停止,等数据库启动后,也能正常访问 ?

李.net的主页 李.net | 小虾三级 | 园豆:826
提问于:2022-06-19 19:56
< >
分享
所有回答(3)
0

可以试试 EnableRetryOnFailure

services.AddDbContext<MyDbContext>(
    options =>
    {
        options.UseSqlServer(
            Configuration.GetConnectionString("db"),
            builder =>
            {
                builder.EnableRetryOnFailure(
                    3,
                    TimeSpan.FromSeconds(10));
            });
    });
dudu | 园豆:36499 (高人七级) | 2022-06-19 20:00

这个我测试了,但这个能够重新尝试连接数据库的前提是,我网站一开始是正常运行的情况下,中途数据库异常连接断开,这个时候 是会尝试去重新 连接,当数据库恢复的时候 ,网站又能够正常运行了。

但这个还是不能解决,我一开始网站启动,连接数据库异常的情况下,这个时候 是不会再次尝试去连接的。不知道这种情况有没有好的解决办法。因为我是把环境部署在docker里的,每次docker重启的时候,有很大的概率,数据库启动比网站启动要慢,导致网站打不开,每次要进行手动重新 启动才行

支持(0) 反对(0) 李.net | 园豆:826 (小虾三级) | 2022-06-20 00:04

@李.net: 建议在 dockerfile 中添加网站的健康检查地址,在健康检查中检查数据库连接,这样连不上数据库时容器会处于启动失败状态,等连上数据库,容器会进入启动成功状态

支持(0) 反对(0) dudu | 园豆:36499 (高人七级) | 2022-06-20 07:52
0

启动的时候要查询数据库, 这肯定是你的业务代码. 修改一下代码逻辑.

如果想问怎么修改, 你得多贴一些代码了.

czd890 | 园豆:12597 (专家六级) | 2022-06-19 20:14
0

为什么报错会停止呢,网站启动就连接数据库不是必须的吧,或者在连接数据库的地方加异常处理,让网站正常启动就好了

diudiu1 | 园豆:726 (小虾三级) | 2022-06-20 09:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册