3

私のサイト(ASP.Net 4.0 C#)は、複数のインスタンスを持つAzureサーバーでホストされています。私のセッション状態モードは「InProc」です。どういうわけか、Azureインスタンスでは機能せず、状態が適切に維持されません。ご意見をお聞かせください。

よろしくVivek

4

3 に答える 3

8

複数のインスタンスがあり、InProc セッションを使用している場合、インスタンス間で共有されないため、セッション データは機能しません。

Azure は HTTP 要求の負荷を分散し、各クライアントの HTTP 要求を異なるサーバー インスタンスに送信する場合があります。

セッション状態を使用する場合は、次のような共有セッション状態プロバイダーを使用する必要があります。

  • SQL セッション状態プロバイダー (ただし、SQL Azure では SQLAgent コードを使用して状態を定期的にクリアできないため、これにはいくつかの制限があると思います)
  • デモンストレーションの Azure テーブル セッション状態プロバイダー (公式にはサポートされておらず、バグがあると報告されることもあります)
  • 最新の AppFabric セッション状態プロバイダー (現在 MS によって推奨されています) - http://appfabricdemos.codeplex.com/releases/view/65427を参照してください
于 2011-05-11T09:28:37.917 に答える
3

スチュアートの答えに追加する:AppFabricキャッシュは、仮想マシンインスタンスに依存しない、サービスとしてのキャッシュです。このサービスは数週間前に公開されました。AppFabricチームは、キャッシュを使用するセッション状態プロバイダーを提供し、単純なweb.configcopy-n-pasteのみを必要とします。

Stuartが言及した理由により、セッションキャッシュをSQLAzureやテーブルストレージに依存することはありません。

Windows Azureプラットフォームトレーニングキットには、キャッシュサービスを使用したWindows Azureアプリケーションの構築と呼ばれる優れたハンズオンラボがあります。トピックの1つは、AppFabricキャッシュを使用したセッション状態の構成であるため、これについて説明します。

私はこのSO回答でもう少し情報を提供しました。

于 2011-05-11T11:06:08.073 に答える
1

Windows Azure でのセッション管理の方法を選択する

AppFabric キャッシュ サービスは現在稼働中です。

乾杯。

于 2011-05-11T15:20:50.437 に答える