asp.net – 什么时候Response.IsClientConnected慢?
我有一个长时间运行的ASP响应(实际上是一个MVC动作),如果用户已经导航,我想取消.我认为这应该是相当简单的: 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 对于所有的InProc HttpWorkerRequest工作人员,此调用将通过调用位于作为扩展控制块(ECB)的webengine.dll pECB中的EcbIsClientConnected(IntPtr pECB)引回到非托管代码,提供对ISAPI的所有低级访问请求.该引用最初传递给ISAPIRuntime.ProcessRequest. 现在我找不到EcbIsClientConnected方法的任何实现细节.所以没有这个,这是不可能知道它在封面下做了什么,这可能不同于IIS的不同版本.也许别人可以解释一下我也想知道. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC会话过期而不是身份验证
- asp.net-mvc – 为什么ASP.NET MVC 4与IList for editor不能
- asp.net-mvc – ASP.NET MVC现在是“开源”.这是一件好事吗
- azure – 当用户存储在外部身份提供程序服务中时与用户的关
- asp.net Gridview,1记录跨度两行
- ASP.NET网站攻击:如何回应?
- asp.net-mvc – 从ModelMetaData获取另一个属性的值
- ASP.NET Core中实现用户登录验证的最低配置示例代码
- asp.net – “2015年4月20日Google帐户的OpenID2已经消失”
- 详细介绍有关于.NET的委托
- VS2005(c#)项目调试问题解决方案集锦 转
- asp.net-mvc-3 – 使用@ Html.Raw有风险吗?
- asp.net-mvc – 使用没有ORM的ASP.NET MVC
- asp.net – 如何使用resxresourcewriter写入所有
- 并行运行ASP.NET Webforms和ASP.NET MVC
- ASP.NET和System.Diagnostics跟踪 – 我错过了什
- asp.net-mvc – DDD原理和ASP.NET MVC项目设计
- asp.net-mvc-2 – 使用’class(或其他保留关键字
- asp.net-mvc – MVC“添加控制器”是“无法检索元
- asp.net-mvc – ASP.NET MVC如何实现返回上一页的