两台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造成。

posted on 2010-09-15 11:15  vibratea  阅读(772)  评论(2编辑  收藏  举报