asp.net – 在Windows Azure上的HTTP处理程序中是否需要ThreadAb
发布时间:2020-12-16 06:25:11 所属栏目:asp.Net 来源:网络整理
导读:我在一个“
我在一个“小”计算实例中托管在
Windows Azure上的ASP.NET HTTP处理程序.它处理大型二进制文件的下载和上传.在该Web角色中没有其他任何内容,并且根据指南配置了2个实例.当从具有慢速连接的计算机完成下载并且我尝试一次执行多次下载以阻塞客户端的带宽时,有时我会在处理程序中获得ThreadAbortException,最常见的是在.Write到Response.OutputStream期间(我事先设置了Response.BufferOutput = false).堆栈跟踪如下:
System.Threading.ThreadAbortException: Thread was being aborted. at System.Web.Hosting.UnsafeIISMethods.MgdExplicitFlush(IntPtr context) at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush() at System.Web.HttpResponse.Flush(Boolean finalFlush) at System.Web.HttpWriter.WriteFromStream(Byte[] data,Int32 offset,Int32 size) at MyHandler.ProcessGetRequest(HttpContext context) at MyHandler.ProcessRequest(HttpContext context) (Stream.Write调用显然是内联的,因此它不会显示在堆栈跟踪中). 为什么线程被中止?我猜我正在达到某种超时(可能是套接字写入超时),正在以正常方式中止线程,以便ASP.NET运行时处理它? 请注意,它是一个单独的HTTP处理程序,而不是.aspx / .cshtml页面或MVC控制器,在我的代码中没有任何地方我触及Response.End,Response.Redirect或Server.Transfer. 解决方法
当您上传大文件时,IIS会尝试读取请求流,如果它阻塞超过5分钟,则会导致IIS最终抛出ThreadAbortException.
尝试使用此行: <httpRuntime maxRequestLength="2097150" executionTimeout="3600"/> 也请尝试以下建议:http://cutesoft.net/forums/permalink/77440/77438/ShowThread.aspx#77438 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.net MVC返回文件和重定向
- 在ASP.NET中将HTML转换为PDF时保持CSS样式
- ASP.NET:跨应用程序的表单身份验证:匹配密码加密设置
- 如何在ASP.NET网站中解决长时间的Glimpse线路时间问题?
- asp.net – 哪些移动浏览器支持javascript(和Ajax)?
- asp.net – 将JSON发布到Controller
- asp.net-mvc – Upshot.js的当前状态
- 如何在ASP.NET Core 2.0中设置多个身份验证方案?
- asp.net – 命名空间“Microsoft”错误中不存在类型或命名空
- asp.net-mvc-3 – 在html标签中添加html输入
推荐文章
站长推荐
- ASP.NET MVC/C++#:我可以避免在单行C#条件语句中
- asp.net core系列 37 WebAPI 使用OpenAPI (swagg
- asp.net-mvc – MVC Ajax.Beginform OnComplete
- asp.net-mvc – 为什么我需要在asp.net mvc中部分
- asp.net 导出,文件下载
- 使用ASP.Net MVC将图像上传到SQL Server 2005?
- asp.net-core – 如何使用ASP.NET CORE在视图中获
- ASP.NET Webforms – 关闭缓存,但仅针对“页面”
- asp.net-mvc – 使用TFS 2015 Build构建和部署We
- asp.net – 在控制台.NET核心应用程序中创建用户
热点阅读