Web アプリケーションでの共有セッション ロック: ケーススタディ
IIS で展開された 2 つの Web アプリケーション、/HRMS と /TravelDesk は共有セッション管理に AspState を利用し、ユーザーがそれらの間をシームレスに移行できるようにします。 ただし、ユーザーが大きなファイルを /TravelDesk にアップロードすると、重大なパフォーマンスのボトルネックが発生します。 このプロセス中、/HRMS は応答しなくなります。
根本原因: セッションのロック
問題は共有セッションの動作に起因します。 /TravelDesk に大きなファイルをアップロードすると、SQL Server データベース内のユーザーのセッション データがロックされます。このロックにより、/HRMS による同時アクセスが防止され、アプリケーションのフリーズが発生します。
解決策: アップロード中のセッション ロックを無効にする
最も簡単な解決策には、特に /TravelDesk でのファイル アップロード プロセス中にセッション ロックを無効にすることが含まれます。 これは、ページ ディレクティブまたはアップロードを担当するハンドラー内で EnableSessionState="false"
を設定することで実装できます。
代替ソリューション: 共有セッションを超えた
スケーラビリティを向上させ、セッション ロックを完全に排除するには、共有セッション管理に代わる次の代替案を検討してください。
セッション無効化手法を実装するか、データベース主導のセッション アプローチに移行することにより、大きなファイルのアップロード中であっても、/HRMS と /TravelDesk の間のシームレスなナビゲーションを復元できます。
以上がある共有セッション Web アプリケーションで大きなファイルをアップロードすると、別の Web アプリケーションがブロックされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。