2011-11-30 178 views
2

我已经做了一些事情,但我不知道接下来我需要做什么。ASP.NET SQL Server会话与负载均衡

我在具有相同域(http://dev.**.com)的服务器A和B中部署相同的站点。

他们有相同的machinekey,我在网站的web.config中声明。

会话状态指向相同的ASPState数据库。

从以下屏幕截图可以看出,这两个网站分别有appIdAppName。这意味着这两个网站不能共享会话。

有人能告诉我接下来要做什么吗?任何帮助将不胜感激。

enter image description here

我需要声明的应用程序的名称?但是我应该在哪里申报?

+0

再次添加。我应该使appName相同。 –

回答

2

您可以结帐following article

+0

谢谢,但似乎没有回答这个问题。 –

+0

它不适合你吗? –

+0

嗨达林,我的眼睛一定有一些问题。它在我的解决方案中工作。 谢谢! –

0

更改您的[TempGetAppID]存储过程。

例如 SET @appName = LOWER(@appName) - > SET @appName = LOWER(APP_NAME())

APP_NAME()返回connectioned应用程序名称。 “应用程序名称= YourAppName;”设置为connectionString的值。

希望得到这个帮助!

1

我想提出一个更简单的解决方案,但我想我晚点吃晚了。 :)

IIS 7配置数据库路径当然是您看到的AppName,并从中散列AppId。如果两个IIS旨在共享会话,并且它们的AppNames(元数据库路径)不同,您将无法共享会话。有很多建议可以修改生成名称的存储过程,但这对我来说似乎是一种可怕的破解。尽管我喜欢代码项目的解决方案,即避开存储过程,但还有更简单的方法!

进入每台Web服务器上的IIS 7管理器。选择您希望通过IIS共享状态的网站。点击高级设置关闭。 输入唯一值ID,并在每个IIS上使用相同的值。重新启动每个网站和鲍勃的你的叔叔。