6

これに関するアドバイスは大歓迎です。私は午前中ずっと調査してきましたが、まだ頭を悩ませています。私は数週間前に新しい会社に入社しました。.NET 開発者は私だけです。開発はもともとアウトソーシング会社によって行われ、研究を依頼されたからです。既存のシステムに関する私の知識は非常に限られていますが、私が収集できる状況は次のとおりです。

asp.net Web サイトでスティッキー セッションを有効にしたいと考えています。収集した調査から、次の手順を実行する必要があります。ASP.NET State Service を使用しています

セットアップは、2 つの Web サーバーにサービスを提供する負荷分散サーバーです。

  1. 両方の Web サーバーが同じマシン キーを持っていることを確認します。
  2. デプロイ前に Web サイトがプリコンパイルされていることを確認してください。ASP.NET State Service によるオブジェクトのシリアル化用。
  3. iis メタベースのアプリケーション パスが両方の Web サーバーで同一であることを確認します。

私が欠けている知識のビットは、セッションが保存されている場所です。セッションはロード バランサーに保存されますか? ロード バランサーに保存できますか? 私が読んだことから、それらはASP.NET State Serviceによって保存されます。サービスがロードバランサーで実行されている場合、セッションはロードバランサーに保存されます。

私が理解していることから、ASP.NET状態サービスは各Webサーバーで実行され、セッションが両方のサーバーに保存されるように互いに通信します。彼らがこれを行う方法は、使用されるアルゴリズムのタイプに基づいていると思います。どんな情報でも大歓迎です。

4

2 に答える 2

8

zeencat さん、 http://msdn.microsoft.com/en-us/library/ms178586.aspxの State Server Mode セクションを見てください。

StateServer モードは、ASP.NET ワーカー プロセスまたは IIS アプリケーション プールとはの、ASP.NET 状態サービスと呼ばれるプロセスにセッション状態を格納します。このモードを使用すると、Web アプリケーションが再起動されてもセッション状態が保持され、Web ファーム内の複数の Web サーバーでセッション状態を利用できるようになります。StateServer モードを使用するには、まずセッション ストアに使用されるサーバーで ASP.NET 状態サービスが実行されていることを確認する必要があります。ASP.NET 状態サービスは、ASP.NET および .NET Framework のインストール時にサービスとしてインストールされます。

私が理解していることから、ASP.Net状態サービスは1つのサーバーで実行され、ASP.NET状態サービスと呼ばれるサービスとして、両方のサーバーに同じweb.configファイルがあります。

<configuration>
  <system.web>
    <sessionState mode="StateServer"
      stateConnectionString="tcpip=SampleStateServer:42424"
      cookieless="false"
      timeout="20"/>
  </system.web>
</configuration>

このようにして、サービスをホストするサーバーにセッションが保存されます。

それが役に立てば幸い、 []

于 2013-09-11T12:49:49.887 に答える
1

スティッキー セッションを使用する代わりに、ASP.NET セッション ストアとしてオンプレミスの場合は AWS または Redis にいる場合は ElastiCache を使用することも検討してください。自動スケーリング、負荷分散の点でより多くの利点があり、パフォーマンスと言えます。詳細については、http://blogs.msdn.com/b/webdev/archive/2014/05/12/announce-asp-net-session-state-provider-for-redis-preview-release.aspxを参照してください。

于 2016-01-19T15:08:50.600 に答える