1

SessionStateのInProcモードを使用していますが、アプリケーションプールのリサイクルのためにアプリが再起動し続けているため、現在ログインしているユーザーのセッションが失われています。データベースに保存するように変更したい。このようにwebconfigを編集しました

<sessionState mode="SQLServer" timeout="20" allowCustomSqlDatabase="true"
    sqlConnectionString="Data Source=Server;integrated security=True;Initial Catalog=SerialTracker;"
    cookieless="false" />

セッション状態または新しいデータベース用にいくつかのテーブルを作成する必要がありますか?私のホスティングは共有されているので、管理コンソールなどにアクセスできません。

4

3 に答える 3

2

ここで利用可能なステップバイステップのハウツーがあります。データベースで指定されたSQLファイルを実行する必要があるようですInstallSqlState.sql

于 2013-03-05T13:21:29.617 に答える
1

はい、%System Drive Letter%/ Microsoft .NET / Framework /%v。????%にあるInstallSqlState.sqlスクリプトを使用する必要があります。このスクリプトはマシンによって異なります。

例:c:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ InstallSqlState.sql

また、スクリプトがデフォルトでセッションデータを保持しないAspStateDBを作成することも考慮してください。これらはtempdbテーブルに保存されます。

これらが適切でない場合は、AspState DB内にデータを保存する方法がありますので、こちらをご覧ください。

于 2013-05-23T14:57:15.260 に答える
0

2015年現在、スクリプトを実行する必要はありません。UniversalProviderパッケージは、EntityFrameworkを使用して必要なテーブルを作成します。

NuGet / Package Managerを使用して、「Microsoft ASP.NET Universal Providers」パッケージ(現在はv 2.0.0)をインストールしました。これにより、コアもインストールされます。

インストール-パッケージMicrosoft.AspNet.Providers

それはあなたのweb.configファイルにいくつかの(コメントされた)アイテムを挿入します。コメントの指示に従って、「InProc」を「Custom」に変更し、データベースへの接続文字列を設定しました。最初の実行時に、データベースに「Sessions」テーブルを作成し、そこにセッションデータを保存します。

プロジェクトに「Sessions」テーブルがすでにある場合はどうなるかわかりません。

ps-asp IDの残りの部分ではなく、セッションのものだけを保存する必要があるため、挿入した「profile」、「membership」、および「rolemanager」タグを削除しました。

于 2015-06-18T21:20:59.047 に答える