我做了些什么,但我不知道接下来我需要做什么。
我在服务器A和B中部署了相同的站点,该站点具有相同的域(http://dev.**.com
)。
它们具有相同的machinekey
,我在网站的web.config
中声明了这一点。
会话状态指向相同的ASPState
数据库。
从以下屏幕截图中可以看出,这两个网站分别有appId
和AppName
。这意味着这两个站点无法共享会话。
有人可以告诉我接下来需要做什么吗?任何帮助将不胜感激。
我是否需要声明应用程序名称?但是我应该在哪里声明它?
答案 0 :(得分:2)
您可以结帐following article。
答案 1 :(得分:1)
我想提出一个更简单的解决方案,但我想我晚餐时间有点晚了。 :)
IIS 7 Metabase Path当然是您正在看到的AppName,并且AppId是从它进行哈希处理的。如果两个IIS用于共享会话,并且它们的AppNames(元数据库路径)不同,则您将无法共享会话。有很多建议可以修改生成名称的存储过程,但这对我来说似乎是一个可怕的黑客攻击。虽然我喜欢Code Project的避免存储过程的解决方案,但还有一种更简单的方法!
在每台Web服务器上进入IIS 7 Manager。选择要在IIS之间共享状态的网站。单击右侧的高级设置。 输入 ID 的唯一值,并在每个IIS上使用相同的值。重新启动每个网站,Bob是您的叔叔。
答案 2 :(得分:0)
更改[TempGetAppID]存储过程。
示例 SET @appName = LOWER(@appName) - > SET @appName = LOWER(APP_NAME())
APP_NAME()返回已连接的应用程序名称。 “应用程序名称= YourAppName;”设置为connectionString值。
希望这有帮助!