dotnet core IIS网站出现错误时重新启动(例如sql server重新启动)

dotnet core IIS网站出现错误时重新启动(例如sql server重新启动),iis,.net-core,Iis,.net Core,在使用IIS托管dotnet核心应用程序时,我当前面临以下问题 当Web服务器在数据库服务器之前引导时,dotnet应用程序会抛出一个错误,即它无法连接到数据库。当然是这样 但问题是,当它在启动时遇到此错误时,它将不再尝试连接到数据库。当遇到启动错误时,dotnet核心应用程序似乎要放弃 是否有一些通用的重试机制可用于处理此类错误?例如,当应用程序检测到问题时,每5分钟重新启动一次?我似乎自己找到了答案。在启动逻辑期间,我已经连接到sql数据库。我可以简单地强制IIS尝试重新启动进程,直到通过显

在使用IIS托管dotnet核心应用程序时,我当前面临以下问题

当Web服务器在数据库服务器之前引导时,dotnet应用程序会抛出一个错误,即它无法连接到数据库。当然是这样

但问题是,当它在启动时遇到此错误时,它将不再尝试连接到数据库。当遇到启动错误时,dotnet核心应用程序似乎要放弃


是否有一些通用的重试机制可用于处理此类错误?例如,当应用程序检测到问题时,每5分钟重新启动一次?

我似乎自己找到了答案。在启动逻辑期间,我已经连接到sql数据库。我可以简单地强制IIS尝试重新启动进程,直到通过显式关闭使用Environment.Exit的应用程序完成初始化;每当发生错误时,我似乎自己就找到了答案。在启动逻辑期间,我已经连接到sql数据库。我可以简单地强制IIS尝试重新启动进程,直到通过显式关闭使用Environment.Exit的应用程序完成初始化;无论何时发生错误

都是您的代码尝试连接到数据库,而不是.NET Core。即使您使用一些模板中的样板代码,它仍然是您的代码。错误发生在哪里?张贴相关代码。也许您需要做的只是添加一个异常处理程序并重定向到错误页面,或者简单地向控制器返回一个空数组。也许控制器本身中的异常处理程序就足够了。如果您从数据库加载配置设置,您将需要更高级的东西尝试连接到数据库的是您的代码,而不是.NET Core。即使您使用一些模板中的样板代码,它仍然是您的代码。错误发生在哪里?张贴相关代码。也许您需要做的只是添加一个异常处理程序并重定向到错误页面,或者简单地向控制器返回一个空数组。也许控制器本身中的异常处理程序就足够了。如果从数据库加载配置设置,则需要更高级的功能。为什么不处理异常并避免重新启动?因此,异常是数据库不可操作(例如,在全局电源故障的情况下,尚未启动)发布代码而不是异常说明。处理它意味着修改代码,使其不会使应用程序崩溃,而是重试。没有
全局
故障。只是
Startup()
方法引发的异常。此外,显示视图不需要数据库连接。只有在加载数据时才需要它。除非要加载配置数据,否则启动时不需要打开任何连接。为什么不处理异常并避免重新启动?因此,异常是数据库不可操作(例如,在全局电源故障的情况下,尚未启动)Post代码不是异常描述。处理它意味着修改代码,使其不会使应用程序崩溃,而是重试。没有
全局
故障。只是
Startup()
方法引发的异常。此外,显示视图不需要数据库连接。只有在加载数据时才需要它。您不需要在启动时打开任何连接,除非您想加载配置数据。