【发布时间】:2015-09-09 15:54:37
【问题描述】:
我正在尝试从不同服务器中的多个应用程序访问存储在 SQL Server 中的共享会话。
我已经读过这个Sharing sessions across applications using the ASP.NET Session State Service 但我没有运气。
以下是我如何设置两个应用程序的 web.config:
<sessionState
mode="SQLServer"
allowCustomSqlDatabase="true"
sqlConnectionString="Application Name=MyAppName; Data Source=MyDataSource; Initial Catalog=MyDBName; User Id=MyUser; Password=MyPassword"
cookieless="false"
timeout="250"
/>
这是我在两个配置文件中设置的机器密钥:
<machineKey validationKey="key1" decryptionKey="key2" validation="SHA1" decryption="AES" />
两个应用程序都可以读取和写入数据库。
我还调整了TempGetAppID 存储过程以克服应用程序名称的限制。这样,我的 SessionID 共享相同的后缀。
也就是说,ASPStateTempSessions 表中仍有 2 条不同的记录,它们具有不同的 SessionID。
这是一个例子:
3nn53mh3j0vf3mrravuda11o9c8d4bee
oljchatkqzcje1ae1b3n2pst9c8d4bee
任何想法都将不胜感激!
编辑 1
我尝试在单个标签上同时使用 Chrome 和 IE。
【问题讨论】:
-
这真的是您的机器密钥还是出于安全原因而发布的?请注意,您不能只在其中粘贴任何值:blogs.msdn.com/b/amb/archive/2012/07/31/…
-
我不确定你是否也读过这个:stackoverflow.com/questions/10555000/…。 (可能的原因不止一个,也许其中一个答案可以解决您的问题)
-
@NightOwl888 这不是我的机器密钥,仅用于示例目的。
-
@helix 我已经阅读了那篇文章,但我在其中找不到解决方案。
标签: c# asp.net sql-server session