最近、Asp.net MVC 4、Ninject、EF Poco、SQL 2008、Auto Mapper を使用して MVC アプリケーションを開発し、winhost 共有ホスティング サーバーでホストしました。私の問題はセッションの有効期限です。2 つまたは 3 つの維持要求アプリケーション プールがリサイクルされます。
以下のサポートチームの返信を参照してください
各 Web サイトを独自のアプリケーション プール / プロセスでホストします。サーバーの安定性を確保するために、次の条件のいずれかが満たされた場合、アプリケーションをリサイクルします。
1) 20 分を超えるアイドル時間 (20 分間に http 要求がない) 2) アプリケーションが 100 MB を超えるメモリを使用している 3) アプリケーションが 3.5 分を超えて CPU リソースの 70% を超えて使用している
サーバー ログを確認したところ、100 MB を超えるサーバー メモリを消費し始めたため、アプリケーション プールがリサイクルされた多数のエントリが見つかりました。以下は、ログ エントリの例です。
TimeGenerated : 2012 年 9 月 5 日 10:03:36 PM メッセージ : アプリケーション プール 'customerPool_42717' を提供する '30088' のプロセス ID を持つワーカー プロセスは、プライベート バイトのメモリ制限に達したため、リサイクルを要求しました。
TimeGenerated : 2012 年 9 月 5 日 10:02:36 PM メッセージ : アプリケーション プール 'customerPool_42717' を提供する '315060' のプロセス ID を持つワーカー プロセスは、プライベート バイトのメモリ制限に達したため、リサイクルを要求しました。
残念ながら、ログには、100 MB を超えるサーバー メモリを消費する原因となったアプリケーションの動作はわかりません。メモリ制限に達したことが記録されるだけです。
セキュリティとパフォーマンス上の理由から、共有ホスティング環境でサーバーのリソースを監視することは許可されていません。アプリケーションが開発環境で使用するメモリの量を評価したい場合があります。要件が 200MB 未満の場合、最も簡単な解決策は、アカウントを WinHost Max アカウントにアップグレードして、使用可能なメモリの量を増やすことです。ワーカー プロセスを 200MB または 300MB の専用 RAM を持つ WinHost Ultimate プランに。
アカウントをアップグレードできない場合は、データベースが作成されているため、SQL Server セッション状態管理の使用を検討することをお勧めします。詳細については、次の WinHost ナレッジ ベース記事を参照してください。
http://support.winhost.com/KB/a626/how-to-enable-aspnet-sql-server-session-on-your-web.aspx
スキーマのインストールをご希望の場合は、お知らせください。SQL セッションは、アプリケーション プールの自動リサイクルを停止しませんが、リサイクルが発生したときにのみセッションを保持することに注意してください。
この問題を克服する方法を提案できますか??