Microsoft Azureでホストした後、Entity FrameworkベースのWebサイトで問題が発生しました。約30分でサーバーに呼び出しが行われなかった場合、サーバーは完全に応答を停止し、すべての要求に対して内部サーバーエラー(500)を返します。Entity Frameworkサーバーのタイムアウト
サイトをローカルで実行していても問題ありませんでした。何も起こらずに何時間も実行していても問題ありませんでした。私は15分ごとにサーバーにpingを実行するループを実行することで問題を解決できましたが、それは明らかに良い解決策ではありません。だから私の質問は:どのように私は使用していないときに死ぬのを防ぐために私のサーバーの接続プロパティを設定できますか?
私はコネクション認証についてはほとんど知りませんが、唯一のエラーは内部サーバーエラー(何も表示されません)が発生した場合のトラブルシューティング方法がわかりません。ここで
のGithub上のコードです:私はあなたと共有したいという気になりましたhttps://github.com/synthc/UMD.git
私はこの問題に直面しませんでしたが、ワーカースレッドが30分間使用しないとリサイクルされているのかどうか疑問です。データベースのコンテキストを長期間保存していますか? – Basic
まあ、私はDBコンテキストを再初期化することは何もしていないので、再割り当てされることはないと思います(それは悪いことですか?)。 – synthc
私は最近のAzureの経験がないので、直接コメントすることはできません。私のMVCアプリケーションでは、dbコンテキストは要求の存続期間中存在します。そうすれば、他のリクエストに干渉することを心配することなく、変更を元に戻すようなことをすることができます。 Unityを使ってDBContextを取得する方法を見てみましょう。それはあなたのためにオブジェクトの寿命を処理することができます。 http://stackoverflow.com/a/18264598/156755を参照してください – Basic