3

最初はセッション変数を渡していましたが、Azure ではサポートされていないと誰かに言われました。他に提案はありますか?ログインユーザーのオブジェクトを保存しています。

4

2 に答える 2

4

Azure はセッションをサポートしていますが、個々の Web ロールにセッションを配置することはうまく機能しません。たとえば、アプリを 2 台、4 台、または 8 台のサーバーにスケーリングしたり、高可用性を維持したりする場合は、異なるサーバー間で要求をルーティングするロード バランサーを用意します。したがって、複数の Web サーバーがあり、それぞれがロード バランサーの背後に独自のユーザー セッションを持っている場合は、セッション状態データなしで Web ロール (サーバー) に要求が送信される可能性があるため、問題が発生します。

すべての Web ロールで使用できる単一の変数を保存する場合...

  • 分散キャッシュ (Azure には、このためのオプションがいくつかあります)
  • Azure Table Storage (変数が 1 つの場合は高速です)
  • SQL Azure DB (単一の変数ではおそらくやり過ぎ)

上記のオプションはすべて、複数の Azure Web ロールからの共有アクセス (読み取り/書き込み) を許可します。Azure Caching および SQL Azure DB 用に記述された ASP.NET セッション状態プロバイダーも利用できます。逆に、Azure Table Storage は、一意のキーに基づいてデータを非常に高速に取得するための非常に優れたオプションです。

于 2013-10-08T01:49:49.270 に答える
0

Web ロールが単一インスタンスで実行されている場合、セッションは正常に機能します。ただし、スケーラビリティが必要な場合は、キャッシュを使用する必要があります。

于 2013-10-08T09:29:00.667 に答える