asp中如何强制断开客户端与服务器的连接

asp中如何强制断开客户端与服务器的连接,第1张

大概还没明白isclientconnected 的意思 他是只读的 而且用法也不是这么写的

If Response.IsClientConnected Then

Response.Flush

Else

Response.End

End If

下面是摘抄的一段

在进入长时运算之前使用Resonse.IsClientConnected

如果用户感到不耐烦,他们可能在ASP页面计算他们的请求之前离开这个页面。如果他们点击刷新或是跳到服务器上的另一个页面,新的请求将位于ASP请求队列尾部,而中断的请求却在请求队列的中部;通常服务器在高负载情况下可能发生这种情况(服务器有很长的请求队列,同时请求次数也很多);而这种情况又使服务器的负载情况变得更加恶劣。如果用户已经断掉连接,没有必要再执行这个ASP页面(尤其当这是一个很慢、很耗资源的页面时);Response.IsClientConnected属性能检查出这种情

况;如果属性返回False,就应该调用Resonse.End来结束剩余的页面。事实上,

IIS 5.0使这种检查规律划--无论什么时候ASP准备执行一个新的请求,他先检查请求队列有多长;如果队列已经超过3秒钟,ASP就会检查客户端是否连接;如果客户端已经断开,ASP立即终止这个请求。可以使用AspQueueConnectionTestTime设置来调整3秒的超时。

如果有一个非常耗时的页面要执行,也可以在页面中检查

Response.IsClientConnected。当响应缓冲打开时,在页面运行中使用

Response.Flush也能给用户操作正在执行的感觉。

注意:在IIS 4.0上,除非你先执行了Response.Write,否则

Response.IsClientConnected的结果有可能不正确;如果响应缓冲已经打开,还必须先执行Response.Flush。在IIS 5.0上,就没有这个必要了,

Response.IsClientConnected工作得很正常。无论任何情况,

Response.IsClientConnected总要消耗一些时间,因此,只应该在执行耗时至少超过500ms的页面中执行。首要原则是,不要在一个紧密的循环中反复调用这个属性。

直接设置10秒自动关闭不就得了

本来用了response.end是不会再把后面内容输出的,你这种情况可能是你把这个句子放在了if……end if之间,而end if后面还有代码,才造成的。如果是的话,就得试着改变语句结构了。

另外,前一位朋友说的“response.end只是中断了服务器端程序的运行”这是不对的,它可以让ASP程序不再向客户端输出任何内容。除非你把response.end用别的结构化句型包围了,如if……end if等。

调试步骤如下:(1) IIS启用调试1. 计算机管理-服务和应用程序-Internet信息服务-网站-默认网站-属性2. 主目录-应用程序配置-调试3. 启用ASP服务器脚本调试(2)在需要中断调试的ASP脚本行里添加一行stop(3)在浏览器里访问该脚本,由于iis在解析脚本时遇到stop命令就会中断抛出异常,此时会弹出窗口要求你选择调试器可选择visual studio 2008/2005,然后提示附加到dllhost进程,选择附加,则visual studio就会弹出窗口显示代码,光标断点显示在stop语句行,这时便可以开始单步调试了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/59737.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-27
下一篇2023-02-27

发表评论

登录后才能评论

评论列表(0条)

    保存