- PR -

ASP.NET バージョン 2.0 Session Stateのインストール方法について

1
投稿者投稿内容
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2007-09-13 18:46
現在.NET2.0でWebアプリを開発しているのですが、セッション情報をリモートのSQLServerに保持させるために、リモートのDBサーバー(.NET1.1と.NET2.0が入っています)上で以下のコマンドで設定を行いました。

sqlcmd -S localhost -i C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\InstallSqlState.sql

次にweb.configには以下の記述を追加しました。

<sessionState
mode="SQLServer"
sqlConnectionString="Data Source=[データベース名];Persist Security Info=True;User ID=[ユーザ名];Password=[パスワード]"
cookieless="false" />

この時点でWebアプリにアクセスすると以下のエラーが表示されてしまいます。

「ASP.NET バージョン 2.0 Session State が SQL Server 上にインストールされていないため、SQL server を使用できません。ASP.NET Session State SQL Server Version 2.0 以降をインストールしてください。 」

一応aspnet_regiis -iでASP.NET2.0をもう一度インストールしたのですが、何も変わりませんでした。この問題はどのように解決すれば良いでしょうか?

お手数ですが、宜しくお願いいたします。


どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-09-14 10:25
DBサーバに.NET Framework 2.0がインストールされているのであれば、
aspnet_regsql.exeを使ってセッションステート用のテーブルを作成するのが
楽だと思います。
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2007-09-27 20:49
返信が大幅に遅れて申し訳ありません。

ASP.NET2.0ではsqlcmdを使ってInstallSqlState.sqlを実行するのではなく、aspnet_regsql.exeを使う方が良いということでしょうか?その場合は、どのようにテーブルを作成するのでしょうか?

グーグルで英語サイトも含めて検索したのですが、aspnet_regsql.exe -E -ssadd -sstype p -S localhostを再度実行することで解決した人もいますが、私同様未解決のままスレッドが終わっているサイトも結構あり、途方にくれております・・

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-10-01 11:35
テーブルは勝手に作成されます。
ドキュメントやヘルプを参考に一度やってみるのがよいと思います。
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2007-10-04 12:01
返信ありがとうございます。

結局SQLServerのアプリ用アカウントの権限が足りないことが原因でした。
当初はpublicとセッションDBへのdb_datareader、db_writerのみ設定しておりましたが、
これをsysadmin、db_ownerに変更することで問題なく動作させることができました。

エラーメッセージが、
「ASP.NET バージョン 2.0 Session State が SQL Server 上にインストールされていないため、SQL server を使用できません。ASP.NET Session State SQL Server Version 2.0 以降をインストールしてください。 」
だったため権限の問題だと気付くのが遅れましたが、なぜ権限の問題でこのようなエラーになって返ってくるのかまでは不明です。

とにかく色々とありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)