关于使用状态服务器共享Session的问题

coollzh 2007-06-01 03:44:00
我们知道在asp.net WebFarm下共享Session(StateServer模式),各站点在IIS中的Instance ID必须是一样的,为了这个微软还专门有个KB来说明。

这个共享Session是建立在域名一样的情况下,才能有效。
但,如果域名不一样,但是ID一样,是不是也可以通过StateServer共享Session呢?
比如site1.domain.com;site2.domain.com,是不是可以共享Session呢?
我做了个实验,把这个两个站点保存SessionId的Cookie.Domain设置成顶级域名就可以共享SessionId了,即设为Cookie.Domain="domain.com".

大家看看,我提问的问题,可有人知道StateServer和IIS之间的联系方式?
...全文
1207 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
keyouea 2008-03-24
  • 打赏
  • 举报
回复
看看
gameboy766 2007-06-05
  • 打赏
  • 举报
回复
学习
jtg98g3 2007-06-05
  • 打赏
  • 举报
回复
dropdownlist没有文本输入框框的,我想用层做一个输入框框,我的dropdownlist是动态生成的,这个时候我就要将层移动到dropdownlist上去。请问我怎么获取dropdownlist的坐标值,然后让层覆盖该dropdownlist?


以下帖子给分。
如何在C#.net WEB2005开发中获取dropdownlist在网页中的位置坐标?
http://community.csdn.net/Expert/topic/5580/5580708.xml?temp=.7489435
发错连接,更正在发送。
jtg98g3 2007-06-05
  • 打赏
  • 举报
回复
dropdownlist没有文本输入框框的,我想用层做一个输入框框,我的dropdownlist是动态生成的,这个时候我就要将层移动到dropdownlist上去。请问我怎么获取dropdownlist的坐标值,然后让层覆盖该dropdownlist?


以下帖子给分。
如何在C#.net WEB2005开发中获取dropdownlist在网页中的位置坐标?
http://community.csdn.net/Expert/topic/5481/5481151.xml?temp=.4136316
jtg98g3 2007-06-05
  • 打赏
  • 举报
回复
学习。
csover8 2007-06-04
  • 打赏
  • 举报
回复
关 注 一 下
coollzh 2007-06-04
  • 打赏
  • 举报
回复
初步断定和三个因素有直接关系:
1.SessionId
2.HttpRuntime.AppDomainAppId
3.Machine.Config中ValidationKey
coollzh 2007-06-04
  • 打赏
  • 举报
回复
测试成功了!和大家分享:
1.保证各子站点SessionId相同,设置Cookie.Domain=".youdomain.com" 就可以了
2.HttpRuntime.AppDomainAppId 一致,其就是就是站点的Instance ID一致,具体请查考 http://support.microsoft.com/default.aspx?scid=kb;zh-cn;325056

3.Web.config中配置machineKey相,不要用系统默认的,要自己生成。怎么生成machinekey, msdn上也有文章介绍的。
另外,我刚才没有测试成功,好像因为我改了web.config.comments这个配置文件,仅改这个似乎不行。还要该web.config文件。

好了,谢谢大家的关注!
coollzh 2007-06-04
  • 打赏
  • 举报
回复
理论上以下三个值相同就可以了
1.SessionId
2.HttpRuntime.AppDomainAppId
3.Machine.Config中ValidationKey

可是,我测试下来还是不行! 估计可能还有别的因素
leixueqiyi 2007-06-04
  • 打赏
  • 举报
回复
hertcloud(·£孙子兵法£·)
说的好,像这种好东东,研究好了共享一下,不胜感激
killer_liqiao 2007-06-04
  • 打赏
  • 举报
回复
MARK
hertcloud 2007-06-04
  • 打赏
  • 举报
回复
良子 将 研究 成果 分享下吧:)
zhrun 2007-06-04
  • 打赏
  • 举报
回复
学习
zhnzzy 2007-06-04
  • 打赏
  • 举报
回复
帮定顺便学习下
wapit 2007-06-04
  • 打赏
  • 举报
回复
mark
coollzh 2007-06-03
  • 打赏
  • 举报
回复
谢谢 hertcloud(·£孙子兵法£·) 先,研究一下
hertcloud 2007-06-03
  • 打赏
  • 举报
回复
看看这个

http://tech.acnow.net/Html/Program/NET/NETOther/2004-2/1/090702830.shtml

http://msdn2.microsoft.com/en-us/library/aa479041.aspx

http://www.codeproject.com/aspnet/ASPNETSessionInternals.asp
coollzh 2007-06-03
  • 打赏
  • 举报
回复
to hertcloud(·£孙子兵法£·) :
没错就是这个KB,IP验证应该不可能,因为在Web Farm的情况下,各台服务器的IP都是不一样的。
关于域的验证,我觉得是通过SessionId来区分的,默认情况下asp.net保存SessionId的Cookie.Domain属性是不一样的,是全域名的,当时可以手工改这个Domain的值,强制让他们一样。我做了测试,好像还是不行。
hertcloud 说域的验证可有什么依据?
hertcloud 2007-06-03
  • 打赏
  • 举报
回复
不知道 楼主说的 KB 是不是 下面的

http://support.microsoft.com/default.aspx?scid=kb;zh-cn;325056


不过猜测 StateServer 对于 不同 服务器 之间的共享 除了 域的验证 肯定 在服务器通信期间 会加入IP的验证来区别不同的服务器吧
vainnetwork 2007-06-03
  • 打赏
  • 举报
回复
帮你顶下
加载更多回复(22)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧