アプリケーションが実行されているドメインに基づいて、ASP.netのSessionStateに使用されるsqlConnectionStringを変更できるかどうかは疑問でしたか?ASP.Netセッション状態
シナリオ。 1つのアプリケーションから実行されている20のサイトが、どのドメイン(サイト)を参照しているかに応じて、それぞれ異なるデータベースに対話しています。
www.domain1.comを閲覧するとき、アプリケーションはデータベース 'db1'と会話します。他方、サイトwww.domain2.comはデータベース 'db2'などと会話し、関連コンテンツを選択し、1つのマスターデータベースを使用してサイトのすべての接続を処理するのではなく、各データベースに負荷を分散します。
この設定では、SessionStateにSqlServerモードを使用しているため、すべてのサイトセッションのすべてのユーザーが1つのaspstateデータベースに格納されています。すべてのサイトのすべてのセッション要求を処理するための緊張が高まっており、このデータベースへの接続がボトルネックになっているタイムアウトエラーが発生し始めています。
サイトをそれぞれのアプリケーションから分離し、同じコードで異なるアプリケーションを設定できますが、各アプリケーション内では各Web.Configに異なるセッションデータベースを設定して負荷を軽減します。この作業はかなり時間がかかり、長期的にはより多くの管理につながります。セッションオブジェクトが作成される前に、ドメイン内でSessionStateに使用されたsqlConnectionStringをコード内で変更することが可能かどうかを知りたいですか? System.Web.HttpApplicationから継承し、Application_AcquireRequestStateイベントを使用してHttpSessionStateオブジェクトの必要なセットアップを作成できますか?
うまくいけば、これは意味があり、誰かが指針を提供して、これがパイプの夢ではないことを私に証明することができたらうれしいです!
乾杯、 スティーブ
20のドメインすべてに1つのweb.configが使用されていると思います... – chris166