1

ここの指示に従い、ASP.NETセッションを管理してASPStateデータベースを作成するようにSQLServerを構成する方法を説明します。IIS 7に2つのWebアプリケーションがあります。IISWebアプリケーションの設定で、[セッション状態]に移動し、セッション状態を[SQL Server]に設定して、接続文字列を指定します。各Webアプリケーションweb.configに、次のように追加します

<sessionState
       mode="SQLServer"
       allowCustomSqlDatabase="false"
       sqlConnectionString="data source=server;user id=user;password=password"
       cookieless="false"
       timeout="7200"
/>

セッションを作成します、

Session["Data"] = "test"

WebアプリAで、同じブラウザでWebアプリBに移動して印刷します

Response.Write(Session["Data"]);

それは何も示していません。ASPStateデータベースの下のテーブルASPStateTempApplicationsとASPStateTempSessionsにデータがあることがわかります。また、イベントログにエラーは表示されません。誰かが私が間違っているかもしれないことを考えることができますか?

ありがとう!!

4

1 に答える 1

2
You can not get session that belongs to App-A from App-B and vice versa.

セッションはCookieに接続されており、Cookieはapp-aとapp-bで異なり、ランダムに作成されます。同じCookieを設定したとしても、次にデータベースはセッションをアプリケーションIDに接続しますが、これもアプリケーションごとに異なります。

そのため、同じデータベースを使用している場合でも、アプリケーションIDが異なり、Cookieも異なり、aからbへのセッションを取得できません。

これをアーカイブする唯一の可能な方法は、カスタムセッションコードを作成することです。また、app-Aとapp-Bで同じ使用法があることをある程度知っているので、それらを相互に接続します。

于 2012-05-30T21:58:04.133 に答える