asp.net,会话,N,届会议失去了
-
11-07-2019 - |
题
1员额,在计算器,希望有巨大的反馈:)
目前,我正在试图负载平衡我们的网站。我们已经设立了2群N windows服务器2003IIS6.
在测试的设置,我发现,有时候,我们会丢失。一天半之后,这里的结果:
- 是的,我们的机器。配置具有相同的加密钥匙。
- 是的,的id在iis metabase.xml 都是相同的两个机。实际上,整个文件都是一样的,除了"AdminACL".
- 这两个网络应用程序的设置与"会话"和两者都指向同一台机器上。
从这一点出发,在谷歌上搜索提供的信息较少和可能的解决办法。
从我知道,有没有特定的模式,因为这个问题。它只发生一次在一段时间。
同时试图找出问题,我已经看到的请求送asp届会议cookie到服务,但是服务器没有地图,它的用户会议。
所以请求数量的x是从客户发送,与饼干,会议的映射,并且一切顺利。请求数量的x+1是从客户发送,与饼干,但是会议没有被发现。
这两个要求是出于同样的机器在N.
这里有一个片段的asp踪。axd:
第1次请求:
请求的细节 Session Id:j2ffvy45updpc52uhw1mbg55请求类型:获得 时间的请求:11/26/2008 2:58:06Status Code:200 请求编码:Unicode(UTF-8)响应编码:Unicode(UTF-8)
请求收集饼干
名的价值的尺寸
ASP。NET_SessionId j2ffvy45updpc52uhw1mbg55 42 援助的22 9
应收集饼干
名的价值的尺寸
头集合
名称的价值
Cookie ASP。NET_SessionId=j2ffvy45updpc52uhw1mbg55;援助=22
2请求:
请求的细节
Session Id:请求类型:后
时间的请求:11/26/2008 2:58:08时Status Code:
请求编码:Unicode(UTF-8)响应编码:
请求收集饼干
名的价值的尺寸
应收集饼干
名的价值的尺寸
头集合 名称的价值 Cookie ASP。NET_SessionId=j2ffvy45updpc52uhw1mbg55;援助=22
正如你可以看到在第2次请求,发送cookie从客户,但asp似乎从来没有添加饼干在它的"请求饼干集合"。我想这就是为什么它没有找到该届会议。
那么,为什么饼干是不是映射的会议?是什么问题?问题在其他地方?
随便问任何澄清。
感谢你们所有人对你的反馈意见。
JF
解决方案
我终于找到回答我的问题。它的起源是在应用程序码(如99%的程序的第3个缔约方的工具'错误').我决定后,它无论如何情况下有人在类似情况。
这个代码的一部分WebServiceRequester类。该网服务请求的类instanciated当届会议创建并保存在会议。在创建过程中,我们initalizate的成员'm_webServiceURL',这件保存在届会之后。在其价值是该成员初始化是取决于一个设在当地的机。
重要的组成部分如下:WebServiceRequester类包含一个服务对象。服务对象不能被保存在届会议,他们是不序列化在asp。该财产的[非序列化]属性。所以我们每次访问的'服务'的财产的对象的第一个期间一页的生命周期,我们必须创建一个新的一个,并分配ot它的网址'm_webServiceURL'这是保存在会议。所以你看,新的网络服务对象,可能是一个不同的机,这意味着不同的设定在每个机。
所以这里发生了什么事:框29定访问的网服务在localhost
箱30定访问的网服务作为192.168.253.29.
从技术上讲,他们都是设置在同一机。但这里有一个情况:
登录在框29.m_webServiceURL设localhost届会议。
[一些请求在框29在这里]
N平衡使我们在盒30.箱30载的会议上,创建一个新的服务对象与localhost作为网络服务的地址。箱30作出的请求是错误的网络服务导致一届会议期例外。
一个问题在调试,是当地的通信都没有记录与该网络的监视器。
是什么导致我在跟踪,我们永远不会有一个例外登录的框29日志跟踪,因为它应该拥有的。
谢谢你的建议每个人,这是真正的赞赏。
有一个美好的一天。JF
其他提示
不严格回答你的问题,但是你有没有尝试过用一sql服务器的基础届会议的商店?(搜索MSDN上的永久脚本,而不是临时的脚本的提供asp.net)
我听说过"坏事"有关的可执行会议的服务,因此没有使用过它。从未有过任何问题网养殖与sql服务器为基础的解决方案。
对不起这不是严格的回答你的问题,但它应该(a)修复它,或(b)缩小它显着下降。
好吧,如果你使用visual studio,你至少可以测试它与负责(切割下来的版本的SQL服务器的附带Visual Studio)...
它可能有助于规则的国家服务器的问题。
使用该数据库的方法有其自己的问题。我认为你应该能够利用你的优选方法。
也许是 本届会议的故障排除条 会有帮助吗?
我是跛脚,并重申该提案的MS SQL服务器。安装SQL Server表达其是completeley免费的,包括用于商业用途,它只有这3个缺点,这不应该是一个问题你在这个阶段:
- Max4G的大小的数据库
- Max1CPU核心使用的
- Max1GB RAM用
几点,以考虑到:
- 什么载在你的网站?国家服务器的倾向崩溃时所面临的大量并行。我们只有使用它的方案中,我们有一个很小的用户数量(在10的,主要是后台系统)。每当我们试图使用它生产的网站服务的1000年的用户每天,它会崩溃,导致损失的会议数据。
- 在一个生产环境管理,我们正在使用的数据库,2005年达到管理会议,该网站已经10+用户每天达到200多页的一天。这是一个建议的方法在情况届会议是一个必须和紧密地联接到你的申请。
如果你要用户MSSQL表作为你的国家数据库,记住,这不是与SQL服务器剂的含义没有任务调度程序运行的背景和清洁过期的会议。我建议你找到一个调度和运行清理过期的会议储存程序的周期性。
祝你好运
而不是瞎搞SQL,发送你的测试直接进入一个IIS节点来看,如果你仍然得到相同的问题。我确定如果你只做一个小测试数会话不会是个问题。
试图设置的域名称asp。net_sessionid通过代码"。yourdomain.com".通过默认的ASP。net_SessionID cookie域名是设置完整的申请的道路。所以,这可能是一个原因为什么饼干是不是旅行。
E.g。请求。Cookie["ASP。NET_SessionId"].Domain=".yourdomain.com".记住第一"。"重要的是在该域名。
你可以这样做在HttpModule在AcquireRequestState事件。