所以,我在同一台机器上有 asp.net 应用程序和 wcf 服务。我正在尝试在他们之间共享 asp.net 会话。我已经配置了 Sql server 来存储我的会话数据。我在 tempdb 中有 ASPState Db 和两个表: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"]);
}
}
但我无法获得会话 [“用户”]。
我做错了什么,也许我错过了一些明显的东西?
提前致谢!