Mr.Tです、こんにちは。
実は、こっそり、インスパイア。
http://d.hatena.ne.jp/NAL-6295/20071030/p1
StateServerは、ASP.NETを利用する上でSession情報を保持する際に、ASP.NET State Serviceというものを
利用します。
[サーバ側設定]
IISをインストールしていないとサービス自体が、出てこないので注意すること。
- まずは、これを読むこと。けんけんふくよー。
http://msdn2.microsoft.com/ja-jp/library/ms178586(VS.80).aspx -
サービスを起動させる。
サービス名は「ASP.NET State Service」
初期状態で起動は、手動であるため、「手動」→「自動」に挙げておくこと。
-
Firewallの設定を行う。
基本は、tcp 42424を使うので、それを通過するように指定。
-
このままクライアント側からのアクセスを受け付けると、実は次のようなエラーになる。
セッション状態要求をセッション状態サーバーに対して作成できませんでした。ASP.NET 状態サービスが開始されていて、クライアントとサーバーのポートが同じであることを確認してください。サーバーがリモート コンピュータ上にある場合、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection の値を調べて、このコンピュータがリモート要求を受け付けることを確認してください。サーバーがローカル コンピュータ上にあり、上記のレジストリ値が存在していないか 0 に設定されている場合、状態サーバー接続文字列ではサーバー名に 'localhost' または '127.0.0.1' を指定しなければなりません。
なので、指定している通り、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection
を調べて、なければつくる。値を0→1に変更
[クライアント側設定]
VS2005やWVDなら、既定のWebConfig内容では、sessionStateに関する表記がない。自前で、<sessionState>タグを書くこと。
表記の、大文字小文字には、注意すること、でないと、次のようなエラーになる。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。
パーサー エラー メッセージ: 認識されない属性 'Mode' です。この属性は、大文字小文字を区別します。
この時点で最低限な設定は、
<sessionState mode="StateServer"
stateConnectionString="tcpip=****:42424"
cookieless="false"
timeout="20"/>
くらいで接続できる。
あとは、特に設定なしでSession変数を利用することになる。
もし、SateServerを複数台にしてみたい場合は、こちらを参考に。→
State Serverはシングルポイントじゃないよ
関連リンク:ASP.NETでInProcを使ってはいけない