2011-06-10 5 views
0

私はこのトピックに関するいくつかのスレッドを読んで、私は本で読んでいくつかの文章にいくつかの明確化が必要になりました:ASP.NET:セッションオブジェクトは静的変数に対して許容可能なソリューションですか?

あなたはインプロセスセッション状態を保存する場合、アプリケーションはスケーラブルではありません。この理由は、セッションオブジェクトが1つの特定のサーバーに格納されているためです。したがって、セッション状態のインプロセスを格納するは、Webファームでは機能しません。

  1. 最初の文章で「スケーラブル」とは何ですか?
  2. 3番目の文は私のアプリは、共有Webホスト上に存在する場合、私は私のものを保存するには、Session [「MYDATA」]を使うべきではない意味していますか?もしそうなら、私は何を使うべきですか?

ありがとうございます。

+0

「静的変数は、」用語における矛盾である:) – pseudocoder

答えて

1

ASP.NET(クライアントクッキーも可能であるが、それは別の話です)、サーバー側の3つの可能な場所でのアプリケーション(「セッション状態」)のためのすべての組み合わせのセッション情報を格納することができます

  • asp.netワーカープロセスに接続されたIISサーバー上のメモリ内にあることを意味する "InProc"(処理中)
  • "StateServer"は、複数のIISサーバーからアクセスできますが、メモリ内のセッション状態、および
  • SQL Serverデータベースにセッション状態を格納する "SQLServer"。

1)In-processがスケーラブルではない理由は、単一のIISサーバーの容量を超える必要がある場合、複数のサーバーがインプロセスセッション状態を使用できないためです。共有ホスティングのシナリオがあなたのニーズを満たすと判断した場合、それについて心配する必要はありません。

2)あなたはSession["Name"]で何かを格納し、アプリケーションがセッション状態を格納するように構成されている場所のデータのASP.net店。セッション状態が格納されている場所を変更する場合は、web.configファイルを設定するだけです。共有ホスティング環境を使用している場合、実際のサーバーが何らかの種類のファームにあることは間違いありませんが、IIS展開は単一のサーバーと見なされます。

参照:ところでMSDN Session-State Modes

+0

@Oded明らかに私たちのGoogle検索では、同じMSDNの記事をもたらし、信用は最初の投稿のためのあなたに行きます! – pseudocoder

+0

共有ホスティング環境でSession ["Name"]を使用しても安全だと正しく解釈していますか?これらのデータを格納するために使用しているサーバーは1つだけであるためです。 – user776676

+0

@ user776676:はい。私が得ようとしたのは、使用しているセッションステートモードに関係なく、あなたのコードは通常同じままです。 – pseudocoder

2

1:this sense

スケーラビリティ:

優雅な方法でワークの成長量を処理するためのシステム、ネットワーク、またはプロセスの能力、またはそれに対応するために拡大させる能力成長[

2:

セッションサーバまたはSQL Serverでのストアのセッションを使用して、 hereと記載されている。