2017-10-10 17 views
0

IISでdotnetコアアプリケーションをホストすると、現在次の問題が発生しています。dotnet core IIS Webサイトの再起動時にエラーが発生しました(例:SQL Serverの再起動)

Webサーバーがデータベースサーバーより前に起動すると、dotnet-applicationはデータベースに接続できないというエラーをスローします。だからとても良いオフコースです。

しかし、問題は、起動時にこのエラーが発生した場合、データベースに再度接続しようとしないことです。 dotnetコアアプリケーションは、起動エラーに直面したときにはあきらめているようです。

これらの種類のエラーを処理する一般的な再試行メカニズムがありますか?たとえば、アプリケーションが問題を検出した場合など、5分ごとに再起動しますか?

+0

.NET Coreではなくデータベースに接続しようとしている*あなたの*コードです。いくつかのテンプレートにあるボイラープレートコードを使用しても、それはあなたのコードです。エラーはどこで発生しますか?関連するコードを投稿してください。おそらく、例外ハンドラを追加してエラーページにリダイレクトするか、コントローラに空の配列を返すだけでよいでしょう。コントローラー自体の例外ハンドラーで十分でしょう。データベースから構成設定をロードすると、より高度なものが必要になる –

答えて

1

私は自分自身で答えを見つけたようです。私のスタートアップのロジックの間に、すでにSQLデータベースに接続していました。 Environment.Exit(-1)を使用して明示的にアプリケーションをシャットダウンすることによって初期化が完了するまで、単にプロセスを再起動しようとIISに強制することができます。エラーが発生したときにいつでも

+0

代わりに*例外*を処理して再起動しないでください。 –

+0

例外は、データベースが動作していないことです(たとえば、グローバル電源障害の場合など、まだ起動していないなど) – mhtsbt

+0

例外の説明ではなく*コード*を記入してください。これを扱うということは、アプリケーションをクラッシュさせずに代わりに再試行するようにコードを変更することを意味します。グローバルな失敗はありません。 'Startup()'メソッドによってスローされた例外です。 –

関連する問題