如何启用TCP保持活着的IIS?

时间:2009-08-14 09:14:39

标签: iis tcp keep-alive

全部,    我有一个网站,使用经典的ASP和水晶报告,根据用户输入到网页(查询后端数据库)生成报告。如果报告花费超过30分钟来运行位于客户端和Web服务器之间的防火墙,则由于它处于空闲状态而丢弃连接,因此报告永远不会显示给用户。为了避免这种情况,我需要使用某种保持活动状态,HTTP或TCP。

IIS 6上的Windows 2000中的Web服务器。我已经在Windows中为TCP keepalive创建了注册表项(并且禁用了我听说过的网卡中的TCP卸载功能可能导致问题),但是IIS没有似乎默认使用它。我在服务器上下载并测试了一个名为TCP / IP Builder(www.drk.com.ar)的套接字测试器,它允许你打开和关闭keepalive,它工作正常,所以我知道服务器可以发送它们。

是否有人知道如何强制IIS使用TCP Keepalive,因为我认为它必须为IIS启用?

谢谢!

2 个答案:

答案 0 :(得分:4)

它不是IIS设置,而是系统范围的操作系统,默认设置为2小时(基于1989年的TCP规范:http://tools.ietf.org/html/rfc1122#page-101)!但是你可以将注册表中的KeepAliveTime更改为更实用的时间(对于今天的通信 - 因为你之前已经发现了超时方式),下面是如何(来自:http://support.microsoft.com/kb/120642):

在:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services

项:Tcpip \参数 适配器名称\参数\ Tcpip

可使用注册表编辑器配置的可选参数 注册表中通常不存在这些参数。可以创建它们以修改TCP / IP协议驱动程序的默认行为。

<强> KeepAliveTime的 密钥:Tcpip \ Parameters 值类型:REG_DWORD - 以毫秒为单位的时间 有效范围:1 - 0xFFFFFFFF 默认值:7,200,000(两小时) 说明:该参数控制TCP尝试通过发送保持活动数据包来验证空闲连接是否仍然完整的频率。如果远程系统仍然可以访问并运行,它将确认保持活动传输。默认情况下不会发送保持活动数据包。可以通过应用程序在连接上启用此功能。

关于使用什么价值我仍然试图找出自己(Keep Alive TCP/IP connected sockets over the Internet - when? how? and how much?),但听起来你想要的东西少于你已知的30分钟(我认为顺便说一句。) / p>

答案 1 :(得分:0)

这是“或者”,HTTP一个:Enabling HTTP Keep-Alives (IIS 6.0)