多服务器共享Session

For_Ever_Do_ 2010-03-16 01:40:27
我再把问题描述的详细些

网站 Lucy'WebStie 原来只部署在一台服务器上 session可以随便使用

现在流量增大 多加了一台服务器 并且加入了loadbalance服务 做负载均衡处理

但这样一来 session的使用就没那么简单了

服务器有两台 192.168.0.123 192.168.0.124 两台上面都是Lucy'WebStie这个网站
webconfig配置如下
<sessionState
mode="StateServer"
cookieless="false"
timeout="240"
stateConnectionString="tcpip=192.168.0.123:42424"
stateNetworkTimeout="14400"
/>
123上服务启动了 那个键值也改成1了
不过网上说这样还不行 还要配置
<machineKey
validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4"
decryptionKey="5FC88DFC24EA123C"
validation="SHA1"
/>
这个是什么东西? 听说还要把两台机子上的网站实例名统一 那什么是网站实例名? 据说不这样 两台机子对于同一个客户端生成的sessionID不一样 sessionID生成机制是什么?
要使两台机子共享一个session 我改怎么配置?
请大牛门稍加指点 谢谢!

出于性能考虑 只能用stateserver 那些提出用sqlserver的同学们 省省口水吧 那个性能无法接受 并且我们只有oracle 谢谢!
...全文
378 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
For_Ever_Do_ 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 leonbingo 的回复:]
现在还有什么问题么?
[/Quote]
对 还有问题 网站实例名称是什么东西 两台服务器我改怎么配置成一样的?
煊烨 2010-03-16
  • 打赏
  • 举报
回复
machineKey 是用于标识的加解密,如果machineKey不一致,在一台服务器加密,然后再另外一台服务器解密就会出错。


另外负载均衡理论上是不需要考虑Session的问题,因为这是负载均衡软件(硬件)来解决的, 一段时间内同一个IP的请求都应锁定在某台服务器上,不可能一会到这台,一会到那台
leonbingo 2010-03-16
  • 打赏
  • 举报
回复
现在还有什么问题么?
For_Ever_Do_ 2010-03-16
  • 打赏
  • 举报
回复
自己顶下
seesea125 2010-03-16
  • 打赏
  • 举报
回复
memcached
zzxap 2010-03-16
  • 打赏
  • 举报
回复
多服务器,用数据库保存比较好点
For_Ever_Do_ 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 leonbingo 的回复:]

如果你的Asp.Net程序执行时碰到这种错误:“验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。”那么说明你没有让你的应用程序使用统一的machineKey,那么machineKey的作用是什么呢?按照MSDN的标准说法:“对密钥进行配置,以便将其……
[/Quote]
也就是说 只要配置了这句话就OK了?
<machineKey
validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4"
decryptionKey="5FC88DFC24EA123C"
validation="SHA1"
/>
maomao90 2010-03-16
  • 打赏
  • 举报
回复
帮楼主顶,

学习了
leonbingo 2010-03-16
  • 打赏
  • 举报
回复
如果你的Asp.Net程序执行时碰到这种错误:“验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。”那么说明你没有让你的应用程序使用统一的machineKey,那么machineKey的作用是什么呢?按照MSDN的标准说法:“对密钥进行配置,以便将其用于对 Forms 身份验证 Cookie 数据和视图状态数据进行加密和解密,并将其用于对进程外会话状态标识进行验证。”也就是说Asp.Net的很多加密,都是依赖于machineKey里面的值,例如Forms 身份验证 Cookie、ViewState的加密。默认情况下,Asp.Net的配置是自己动态生成,如果单台服务器当然没问题,但是如果多台服务器负载均衡,machineKey还采用动态生成的方式,每台服务器上的machinekey值不一致,就导致加密出来的结果也不一致,不能共享验证和 ViewState,所以对于多台服务器负载均衡的情况,一定要在每台站点配置相同的machineKey。
For_Ever_Do_ 2010-03-16
  • 打赏
  • 举报
回复
纠结 这里大牛真的很少....

62,244

社区成员

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

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

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

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