2011-10-03 4 views
11

ASP.NETアプリケーションの一部を1つのサーバー上で実行するようにスケールし、他の部分を別のサーバーサーバー(サブドメインの下の&)。ASP.NET gurus - スケールアウトシナリオでSQLセッションを共有するためのアプリドメイン名を設定するときの小さな問題

2つのサーバーは(SQL Server)セッションを共有します。 this MS articleを使用して、2つのサーバー間でアプリケーションドメイン名を同期する小さなHTTPモジュールを作成しました(cookieドメインコードはweb.configで設定できますが、後でthis CodeProject articleが見つかりました)。

小さな問題(配備の変更またはweb.configの調整では手動のアプリケーションプールのリサイクルが必要です)を除いてすべてうまくいきます(自動リサイクルは機能しなくなりました。代わりに「ウェブサーバーは現在利用できません/ヒットリフレッシュ」エラーが発生します) 。

私は、アプリケーションモジュールの名前付けコードをHTTPモジュールからGlobal.asaxのApplication_Startセクションに移動しようとしました(おそらく、これはより良い場所ですか?) - 同じ問題が発生しました。

私は、1つの解決策は、SQL Serverセッションストアドプロシージャのいずれかでアプリケーション名をハードコードすることです。これをするのはちょっと躊躇しています。

編集:アプリがIIS 6.0でASP.NET 3.5である(感謝@クリス& @bzlmは)

+0

クリス - 私はIISタグを追加しました。 –

+1

@Chrisは、.NETのバージョン番号*(例:2.0)とIIS(たとえば6.0)を含める必要があることを意味します。 – bzlm

+0

この種のエラーは、通常、イベントログにエントリを追加します。もしそうなら、ここでエラーを投稿してください。 –

答えて

0

更新。私たちはこれに関してMicrosoftに技術サポートのケースを開いた。 1週間ほど前には&のバックで、彼らは自分たちの環境で問題を再現し、原因(ASP.NET内部の深いタイミングの問題)を理解していると言いましたが、彼らが認識している解決策はありません。私はHTTPモジュールがマイクロソフトのコードだと訴えましたが、彼らはこのコードが "早く公開されました"という言葉の下にあると言いました - &アドバイスする顧客を助けることを意図しました。まだ保証されていません。

ああ。 web.configを変更した後、アプリケーションプールを手動でリサイクルするだけです。

0

適切なリサイクルのイベントがIISでオンになっている場合は、チェックする必要があり、多分これは助けることができるhttp://support.microsoft.com/kb/332088

関連する問題