したがって、同じマシンにasp.netアプリとwcfサービスがあります。そして、それらの間でasp.netセッションを共有しようとしています。セッション データを保存するように SQL サーバーを構成しました。ASPState Db と tempdb に 2 つのテーブルがあります。ASPStateTempSessions, ASPStateTempApplications
どちらにもデータを含む行があります。私が追加したasp.netアプリとwcfサービス構成で:
<sessionState mode="SQLServer" sqlConnectionString="Data Source=localhost;integrated security=True;Application Name=app" />
Asp.netアプリでは、このようにユーザーを設定しました
HttpContext.Current.Session["User"] = userName;
ログで、ユーザーが実際に設定されたというエントリを見ました。(そしてJS経由でチェック)
wcf サービス:
[ServiceContract(SessionMode = SessionMode.Allowed)]
public interface IDbWebService
{
[OperationContract]
[WebInvoke]
Data GetBlahBlah(string env);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public partial class WebService : IDbWebService
{
public Data GetBlahBlah(string env)
{
//trying to get data here, nothing, just null
_log.InfoFormat("USER: {0}", HttpContext.Current.Session["User"]);
}
}
しかし、Session["User"] を取得できません。
私が間違っていることは、おそらく何か明らかなことを見逃していますか?
前もって感謝します!