特集:クライアントステート管理、3つの手法Visual Studio Magazine(3/9 ページ)

» 2004年12月28日 10時30分 公開
[Matthew Gibbs, Rob Howard,FTPOnline]

 注目すべき点は、mode属性が「StateServer」に設定されていることだ。stateConnectionString属性とstateNetworkTimeout属性は、StateServerモードで動作させるときに必須となる設定値である。

<configuration>
<system.web>
<sessionState mode="StateServer"
stateConnection
String="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"
cookieless="false"
timeout="20"/>
</system.web>
</configuration>

 ASP.NETがState Serverモードを使うように構成されている場合、State Server(この実態は、Windowsのサービスとして実行される軽量なWebサーバである)にHTTPリクエストを送信するために、TCP/IPアドレスとポート番号を利用する。

 (stateConnectionString属性で指定される)IPアドレスは、「ASP.NET State Service(訳注:MSDNの日本語ドキュメントでは「状態サービス」とも記されている)」が実行されているPCのIPアドレスに変更しなければならない。

 さらに、もしASP.NET State Serviceがファイアウォールの下に隠されていないのであれば、ポート番号(デフォルトは42424)も変更すべきだ(もっともファイアウォールの下に置いて隠すべきだが)。ASP.NET State Serviceが実行されているPCでレジストリを編集し、次に示す個所にあるポート設定値を変更すれば、ポート番号を構成できる。

HKLM\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\

 標準ポート設定は、16進数で「0x0000A5B8」、10進数で言えば「42424」だ(画面1)。

画面1■レジストリで標準ポートを変更する。ASP.NET State Serviceが実行されているPCでレジストリを編集し、ポート設定値を変更することで、ポート番号を構成できる

 ASP.NET State Serviceが動いているサーバがファイアウォール外からアクセス可能であれば、ASP.NET State Serviceのポート番号を標準以外の値に変更すべきだ。

 ASP.NET 1.1では、セキュリティ上の理由から、ローカルマシンだけが、ASP.NET State Serviceが稼働しているサーバに接続できるようになっている(訳註:つまりWebサーバと同サーバでASP.NET State Serviceを稼働させなければならない)。ASP.NET 1.1において、ローカルホスト以外からのリクエストを許可するには、ポート設定の際に挙げた「HKLM\SYSTEM\CurrentControlSet\Services \aspnet_state\Parameters\」レジストリの「AllowRemoteConnection」値を「1」に変更すればよい。

 stateNetworkTimeout値は、ASP.NETがASP.NET State Serviceへの接続を試みてから諦めるまでのタイムアウト時間を秒数で示したものだ。stateNetworkTimeout値は標準値のままでよく、変更する必要性はない。しかし、必要に応じて値を小さくしたり大きくしたりする余地はある。

 さて、State Serverモードで動作するようにサーバ構成したならば、次に、Windowsサービスを開始させよう。サービスは、コマンドラインからでも、Microsoft管理コンソール(MMC)からでも開始ができる。コマンドラインからASP.NET State Serviceを開始するのは容易だ。

 まず、.NET Frameworkをインストールしたディレクトリにカレントディレクトリを移動してほしい。バージョン1の場合、「システムドライブ\WINDOWS\Microsoft.NET\Framework\v1.0.3705\」だ。次の「net start」コマンドを実行することで、サービスを開始することができる。

net start aspnet_state

 サービスを開始すると、次のようなメッセージが表示される。

ASP.NET State Serviceサービスを開始します
ASP.NET State Serviceサービスは正常に開始されました

 ASP.NET State Serviceを開始するもうひとつの方法は、MMCスナップインの「サービス」を利用することだ。これは、[スタート]メニューの[管理ツール]→[サービス]から確認できる。一覧の中から[ASP.NET State Service]を右クリックし、[開始]を選択すると、サービスが開始される(画面2)。

画面2■ASP.NET State Serviceを開始する。[スタート]メニューの[管理ツール]→[サービス]でMMCスナップインの「サービス」をクリックし、ASP.NET State Serviceを開始できる。一覧の中から[ASP.NET State Service]を右クリックし、[開始]を選択する

© Copyright 2001-2005 Fawcette Technical Publications

注目のテーマ