State server 日志事件 ID 1072 或事件 ID 1076
03/25/2020
本文内容
本文帮助您解决记录事件 ID 1072 或1076在状态服务器上出现的问题。
原始产品版本: Microsoft .NET Framework
原始 KB 数: 308097
症状
在 ASP.NET 中使用会话状态的状态服务器模式时,会在状态服务器计算机的应用程序事件日志中显示以下事件之一。 当 Web 服务器或运行状态服务器的计算机处于高压力时,会发生这种情况。
事件类型:错误
事件源:ASP 1.0.3306。0
事件类别:无
事件 ID:1072
日期: 9/12/2001
时间:4:00: 25 PM
用户: N/A
计算机: ComputerName
说明:
在状态服务器中处理请求时出现错误。 主调用堆栈: EndOfRequest。 错误代码:0x80072746
备注
上一事件消息中提到的 .NET Framework 版本是 .NET Framework 1.0 的预发布版本。
事件类型:错误
事件源:ASP 1.0.3306。0
事件类别:无
事件 ID:1076
日期: 9/12/2001
时间:4:02: 05 PM
用户: N/A
计算机: ComputerName
说明:
状态服务器已关闭过期的 TCP/IP 连接。 客户端的 IP 地址为127.0.0.1。 过期的读取操作在 09/12/2001 16:02:00 处开始。
备注
上一事件消息中提到的 .NET Framework 版本是 .NET Framework 1.0 的预发布版本。
事件类型:错误
事件源: ASP.NET 1.1.4322。0
事件类别:无
事件 ID:1078
日期:10/6/2005
时间: 11:03:47 AM
用户: N/A
计算机: ComputerName
状态服务器已关闭过期的 TCP/IP 连接。 客户端的 IP 地址为127.0.0.1。 过期的读取操作在 10/06/2005 11:03:25 处开始。
原因
在 ASP.NET 中使用会话状态的状态服务器模式时,Web 服务器中的 ASP.NET Web 服务器进程通过使用 WinSocket over 传输控制协议/Internet 协议(TCP/IP)与状态服务器进行通信。 默认情况下,Web 服务器进程将所有发送和接收 TCP/IP 操作的超时值设置为10秒。 同样,状态服务器也会在10秒后发出所有发送和接收 TCP/IP 操作的时间。
但是,如果 Web 服务器或状态服务器的 CPU 使用率高(接近100%),则 TCP/IP 操作可能需要10秒以上的时间,因此在完成之前将被取消。 因此,将记录上面提到的事件之一,并且源客户端请求失败。 如果 ASP.NET Web 服务器进程超时 TCP/IP 操作,则状态服务器将记录事件 ID 1072。 如果状态服务器将 TCP/IP 操作超时,则状态服务器将记录事件 ID 1076。
解决方案
若要修改 ASP.NET Web 服务器进程的 TCP/IP 操作超时值,请更改Machine.config文件中的以下属性(或在Web.config文件中为任何 Web 应用程序指定以下属性)。
stateNetworkTimeout="10"
/>
下面介绍了如何修改状态服务器的 TCP/IP 操作超时值:
停止 ASP.NET 状态服务器服务。
选择 "开始",选择 "运行",键入Regedt32.exe,然后选择 "确定" 启动注册表编辑器。
在注册表中找到以下项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameter
添加一个名为SocketTimeout的 DWORD 值。 设置正整数以表示新的 TCP/IP 超时(以秒为单位)。
退出注册表编辑器。
重新启动 ASP.NET state server 服务。
对于遇到 "症状" 部分中提到的问题的用户,请使用这些方法将状态服务器和所有 Web 服务器上的超时值增加到20秒。
备注
如果在 Web 服务器上增加超时值时状态服务器未运行,则客户端请求将在n秒后超时,其中n等于新的超时值,而不是默认的10秒。