2011-05-11 14 views
3

私は自分のサイト(ASP.Net 4.0 C#)を複数のインスタンスを持つAzureサーバーでホストしています。私のセッション状態モードは "InProc"です。どういうわけか、Azureのインスタンスでは動作しません。状態を正しく維持しません。ご意見をお聞かせください。AzureとIn Procセッション

よろしく のVivek

答えて

8

あなたが複数のインスタンスを持っているし、インプロセスのセッションを使用している場合、セッションデータは動作しません - それは、インスタンス間で共有されることはありませんよう。

AzureはHTTPリクエストの負荷を分散し、各クライアントのHTTPリクエストを別のサーバーインスタンスに送信します。

あなたはセッション状態を使用する場合は、共有セッション状態プロバイダを使用する必要がある、など:

  • SQLセッション状態プロバイダ(私はこれはそれとして、SQL Azureの上のいくつかの制限があると考えていたが定期的状態)
  • デモAzureテーブルセッション状態プロバイダ(公式にサポートされていると、時にはバギーとして報告されていない)
  • 現在MSが推奨する最新のAppFabricのセッション状態プロバイダを()クリアするにSQLAgentコードを使用することはできません - 参照http://appfabricdemos.codeplex.com/releases/view/65427
+0

オープンソースであるAzureのセッション状態プロバイダを作成しました。ここからダウンロードできますhttp://azureproviders.codeplex.com/ –

3

スチュアートの答えに追加する:AppFabricキャッシュは、サービスとしてのキャッシングであり、仮想マシンインスタンスには関係しません。このサービスは数週間前に公開されました。 AppFabricチームはキャッシュを使用するセッション状態プロバイダを提供し、単純なweb.configコピーアンドペーストだけで済みます。

スチュアートが述べた理由のため、私はSQL Azureまたはテーブルストレージにセッションキャッシュを依存させません。

良いハンズオンラボはWindows Azure Platform Training KitにありますがキャッシングサービスとビルのWindows Azureアプリケーションと呼ばれる - 話題の一つは、AppFabricのキャッシュを使用してセッション状態を構成しているように私は、それを通過すると思います。

this SO answerでもう少し詳しい情報を提供しました。

関連する問題