大佬教程收集整理的这篇文章主要介绍了asp.net – 什么时候Response.IsClientConnected慢?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
if(!this.Response.IsClientConnected) { Response.End(); }
不过我从that this method is slow开始就碰到了various sources.
所以我运行自己的测试(使用MVC mini profiler,虽然你可以使用自己的):
using (var step = MiniProfiler.Current.Step("Response_IsClientConnected")) if(!this.Response.IsClientConnected) { Response.End(); }
这发现,每次我称之为它一直非常快:在我的开发人员设置的1ms以下.这是真的还是假的?
Response.IsClientConnected在什么情况下预计会很慢?
我必须支持IIS6 – Response.IsClientConnected会慢吗?
有谁知道在封面下做了什么?在低级别,我期望TCP / IP协议栈知道连接是否仍然存在,所以我希望这个检查是即时的,但IIS是否需要做一些额外的工作来检查?
Response.IsClientConnected正在通过询问当前工作人员httpWorkerrequest处理请求来检查此问题.
工作者请求可以是以下类型之一,并且由ISAPIIRRuntime.Processrequest(IntPtr ecb,int iWRTypE)调用的ISAPIWorkerrequest.CreateWorkerrequest(IntPtr ecb,bool useOOp)创建.这是从低级别ISAPI到ASP.NET运行时的入口点.
> ISAPIWorkerrequesTinProcForIIS6
> ISAPIWorkerrequesTinProcForIIS7> = IIS7
> ISAPIWorkerrequesTinProc< IIS6
> ISAPIWorkerrequestOutOfProc对于proc请求
对于所有的InProc httpWorkerrequest工作人员,此调用将通过调用位于作为扩展控制块(ECB)的webENGIne.dll pECB中的EcbIsClientConnected(IntPtr pECB)引回到非托管代码,提供对ISAPI的所有低级访问请求.该引用最初传递给ISAPIRuntime.Processrequest.
现在我找不到EcbIsClientConnected方法的任何实现细节.所以没有这个,这是不可能知道它在封面下做了什么,这可能不同于IIS的不@R_789_11197@.也许别人可以解释一下我也想知道.
以上是大佬教程为你收集整理的asp.net – 什么时候Response.IsClientConnected慢?全部内容,希望文章能够帮你解决asp.net – 什么时候Response.IsClientConnected慢?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。