负载均衡、单点登录环境中 Session StateServer 模式下 Session 丢失问题排错步骤
1 .使用 TestSession.aspx 测试页面,该页面输出当前访问的 WEB 服务器主机名称。 | pass |
2 .两个站点的 session 配置是否一致? Session mode MachineKey 中的密码与密钥必须一致。如下配置: <sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.3:42424" timeout="240" stateNetworkTimeout="14400" /> <machineKey validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24EA123C" validation="SHA1" /> | pass |
3 . web 应用程序文件是否一致 ? | pass |
4 .停用一台 IIS ,使负载均衡只转向到一台,分别单独使用一个 WEB 站点,是否能正常访问 session 状态服务器? | pass |
5 .注册表是否 AllowRemoteConnection=1 , port=42424 ?并且重启状态服务? HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/aspnet_state/Parameters AllowRemoteConnection port | pass |
6 . IIS 的 MetaBase.xml 文件中,两个站点的路径是否一致?这个与创建网站、虚拟目录有很大的关系。一般情况创建同一个网站时,网站名称或虚拟目录,网站路径一致的话, metabase.xml 文件中的数字路径名是一样的。 文件路径 C:/windows/system32/inetsrv/MetaBase.xml Location ="/LM/W3SVC/1/ROOT/UserCenter AppRoot="/LM/W3SVC/1/Root/UserCenter" | pass |
7 .更换状态服务器 IP 地址
| pass |
8 .使用Passport DEMO 演示网站(DemoOA , DemoCardInfo ) | pass |
9 .使用正式网站 | pass |
10 .测试组进行反复测试 | pass |
11 .增加了单点登录 WCF 服务测试,是否可以登录,并且产品间可以跳转成功 | pass |
12 .放置 40 分钟以上,一般测试使用 40 分钟,发现在 WCF 存储的会话信息会丢失; 因为 WCF 服务的会话信息是存储在 IIS 进程内,因此不确定某些原因会导致 IIS 进程内的数据丢失。 | pass |
13 .检查 WCF 服务,此时,由于工作内容,该项目移交到其它组进行处理。 建议使用 Session StateServer 来做为 WCF 服务的会话信息存储服务器。 | pass |
14 .等待其它组的处理结果 |
|