セッション状態を格納するようにSQL Server ASP.NET 構成する

この記事では、ASP.NET SQL Server モードのセッション状態管理用に Microsoft SQL Serverを構成する方法について説明します。

元の製品バージョン: ASP.NET
元の KB 番号: 317604

要件

次の一覧では、必要な推奨ハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、およびサービス パックの概要を示します。

  • Windows
  • .NET Framework
  • インターネット インフォメーション サービス (IIS)
  • SQL Server

セッション状態のSQL Server ASP.NET SQL Server構成する

次の手順では、InstallSqlState.sqlとUninstallSqlState.sql スクリプト ファイルを実行してSQL Server モード のセッション状態管理を構成する方法について説明します。

  1. SQL クエリ アナライザーの [ ファイル ] メニューの [ 開く] を選択します。

  2. [ クエリ ファイルを開く ] ダイアログ ボックスで、 InstallSqlState.sql スクリプト ファイルを参照し、[ 開く] を選択します。 既定では、 InstallSqlState.sql は次のいずれかのフォルダーにあります。

    • system drive\WINNT\Microsoft.NET\Framework\version\
    • system drive\Windows\Microsoft.NET\Framework\version\
  3. SQL Query Analyzer でInstallSqlState.sqlが開いたら、[クエリ] メニューの [実行] を選択してスクリプトを実行します。

  4. UninstallSqlState.sql スクリプト ファイルを実行して、SQL Server モードのセッション状態管理構成をアンインストールする前に、w3svc プロセスを停止する必要があります。 これを行うには、次の手順を実行します。

    1. [Windows スタート] メニューの [実行] を選択し、「cmd」と入力し、[OK] を選択してコマンド プロンプトを開きます。
    2. コマンド プロンプトで、「」と入力します net stop w3svc。 w3svc プロセスが停止していることを確認します。
  5. SQL クエリ アナライザーの [ ファイル ] メニューの [ 開く] を選択します。

  6. [ クエリ ファイルを開く ] ダイアログ ボックスで、 UninstallSqlState.sql スクリプト ファイルを参照し、[ 開く] を選択します。 既定では、 UninstallSqlState.sql は次のいずれかのフォルダーにあります。

    • system drive\WINNT\Microsoft.NET\Framework\version\
    • system drive\Windows\Microsoft.NET\Framework\version\
  7. SQL Query Analyzer でUninstallSqlState.sqlが開いたら、[クエリ] メニューの [実行] を選択してスクリプトを実行します。

  8. SQL Server モード セッション状態管理構成をアンインストールした後、w3svc サービスを再起動する必要があります。 w3svc プロセスを再起動するには、コマンド プロンプトで「」と入力 net start w3svc します。

アプリケーションの Web.config ファイルを変更する

ASP.NET SQL Server モード セッション状態管理を実装するには、アプリケーションの Web.config ファイルの要素を次のように変更<sessionState>する必要があります。

  1. セッション状態がSQL Serverに格納されていることを示すために、 要素の <sessionState> mode 属性を SQLServer に設定します。

  2. 属性をsqlConnectionString設定して、SQL Serverの接続文字列を指定します。 例:

    sqlConnectionString="data source=MySQLServer;user id=<username>;password=<strongpassword>"
    

    注:

    ユーザー <(ユーザー名>) には、データベースに対してこの操作を実行するためのアクセス許可が必要です。

変更された <sessionState> 要素は次のように表示されます。

<sessionState
    mode="SQLServer"
    sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
    cookieless="false"
    timeout="20"
/>

注:

要素と関連する属性値を指定するときは、 <sessionState> 必ず正しいケースを使用してください。 このコードでは大文字と小文字が区別されます。

トラブルシューティング

  • UninstallSqlState.sql スクリプト ファイルを実行する前に w3svc プロセスを停止しないと、次のエラー メッセージが表示されます。

    現在使用されているため、データベース 'ASPState' を削除できません

  • 関連セッションの有効期限が切れた後に ASPStateTempSessions テーブル内のエントリが削除されない場合は、SQL Server エージェントが実行されていることを確認します。 この機能は、SQL Serverのジョブを通じてスケジュールされたストアド プロシージャを使用して実装できます。 SQL Server エージェントは、これらのジョブを管理します。

  • 既定のInstallSqlState.sqlUninstallSqlState.sqlスクリプト ファイルを使用して、ASP.NET SQL Server モード セッション状態管理を構成する場合。 これらのファイルは、既定で SQL Server の tempdb データベースに ASPStateTempSessions テーブルと ASPStateTempApplications テーブルを追加します。 さらに、SQL Serverを再起動すると、ASPStateTempSessions テーブルと ASPStateTempApplications テーブルに格納されていたセッション状態データが失われます。 サーバーを再起動したときにセッション データが失われないように、永続的なSQL Serverセッション状態管理を構成する代替スクリプトを実行する方法の詳細については、

関連情報

セッションの状態