两台WEB服务器,操作系统为Windows2003,IIS 6.0,安装了.NET 2.0,运行的程序相同,相互为负载均衡。

其中一台在进入某个系统功能页面是否会提示错误,提示:

[HttpException : 无法向会话状态服务器发出会话状态请求。请确保已启动 ASP.NET State service,并且客户端和服务器端口是相同的。如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection 的值,确保服务器接受远程请求。]


此应用程序是使用了ASPState服务作为会话管理的,在web.config中配置
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false"
timeout="3600"
/>


常规都会认为是ASPState服务没开,但是其他页面都工作正常,检查服务也是启动了的,重启IIS、ASPState、服务器均无法解决。检查系统日志由如下出错信息:
事件类型: 错误
事件来源: ASP.NET 2.0.50727.0
事件种类: 无
事件 ID: 1074
日期: 2008-2-27
事件: 18:36:41
用户: N/A
计算机: XXXX
描述:
An error occurred in while processing a request in state server. Major callstack: ProcessCompletion-->ProcessReading-->Tracker::Read. Error code: 0x80072747



看起来是连接成功了ASPState服务的,但是服务出错,搜索错误代码0x80072747,提示:
WSAENOBUFS (0x80072747)
No buffer space available.
An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.


貌似内存管理的问题,Google出来的信息非常有限,有4-5个有相同问题,但是均没有答案。完全没有头绪了。想了很久,折腾了很久,突然想到boot.ini中开启了/3GB开关:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3GB


将/3GB开关去掉,重启,恢复~~!怀疑是ASPState在大内存管理下有BUG造成。

天才呀,这个都能想到,其实还是运气好。下班,咔咔。

CCPN
2008-02-28 11:03
呵呵,感觉真是到位了,厉害厉害。
无为而为 回复于 2008-02-28 21:04
感觉就是经验,经验就是感觉,呵呵
黑咖啡
2008-02-28 09:29
zanzanzanzan
无为而为 回复于 2008-02-28 21:05
grin
Vin
2008-02-27 23:41
真是牛人啊!!
无为而为 回复于 2008-02-27 23:56
grin
WWT
2008-02-27 23:33
不错不错!!!
zanzanzan
无为而为 回复于 2008-02-27 23:56
grin
分页: 1/1 第一页 1 最后页
发表评论   请注意:本站已经启用评论审核机制,审核通过才能显示!
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称 *   
网址   电邮   [注册]
               

验证码 不区分大小写