2017-06-01 12 views
0

私はASP.NET Coreを初めて使い、学習します。 Appクラッシュ後にアプリを再起動する方法があるかどうかを知りたいだけですか?クラッシュ後にASP.NETコアアプリケーションを再起動

また、このようなシナリオを異なる方法で処理していますか?

これに関する文書を見つけることができませんでした。誰かが正しい方向を指すことができますか?

答えて

2

IISと同じリバースプロキシとして使用されている完全なWebサーバーの背後にASP.NET Coreアプリケーションをホストすると、自動的に完了します。 IISは要求を受け取り、アプリケーションに送信します(必要に応じて起動します)。 https://weblog.west-wind.com/posts/2016/Jun/06/Publishing-and-Running-ASPNET-Core-Applications-with-IIS

逆に、単純にKestrelを使用すると(実際にはプロダクションには適していませんが)、Kestrelは停止します。それはあなたのアプリがなくなったことです。

+0

お返事ありがとうございます。私はUbuntu 16.10サーバーでApacheを使用しています。 –

+0

私はWindowsでIISを使用していますが、ロジックは同じでなければなりません。完全なWebサーバーである場合、Apacheはリバースプロキシとして機能し、必要に応じてアプリケーションを処理します。私は理論で話している、私は試していないので、誰かが多くの入力を持っている場合、興味深いことができます。 – Daboul

+1

これはおそらく助けることができますか? https://docs.microsoft.com/en-us/aspnet/core/publishing/apache-proxy(再起動=常に RestartSec = 10#dotnetサービスがクラッシュした場合に10秒後にサービスを再起動してください) – Daboul

1

ASP.NET CoreアプリをWindows Serviceとしてホストすると、サービスプロセスが終了すると自動的に再起動するように設定できます。

コードでは、Environment.Exit(1)を実行してプロセスを終了し、ホスティング環境で再起動させます。

これは私が知らない他の環境でどのように構成されていますか、私はほとんどのホストが何らかの方法でこれを設定できるはずです。 IISはおそらくこれをすべて実行します。

ただし、これはプロセスを完全に終了していない例外にのみ適用されます。リクエストスレッドの例外は通常アプリケーションをクラッシュさせることはありませんが、おそらくメモリ不足の状態があり、例外の後に未定義で危険な方法で終了する可能性がある場合は、アプリケーションを停止して再起動することができます。

関連する問題