Apppool回收和带有线程的Asp.net?
我创建了一个执行long sp的asp.net页面.
让我们说执行sp的函数叫做Func1. 我见过这个问题: 如果我在同一个线程中运行Func1(正常执行),那么apppool将不会自行回收,因为他将其视为忙碌/工作. 但是如果我在另一个线程中执行Func1 – 那么apppool在自己设置的时间之后回收: 我的问题是:为什么? 如果我同步运行一个命令,那么app是否有效并且不符合apppool recycle的条件?
解决方法
ASP.NET维护一个用于为请求提供服务的线程池线程列表.它知道它可以在没有任何线程处于活动状态时回收app域.
如果您在不了解ASP.NET的情况下创建线程或使用线程池线程,它将不会检测到您的线程处于活动状态并且可能会回收. 当它循环使用时,它会卸载AppDomain,导致在你的线程上抛出ThreadAbortException. 您的要求的正常解决方案是拥有一个由Web应用程序控制的Windows服务.这显然是在一个单独的过程中,因此不受Web应用程序回收的影响.但是,这是一项非常重要的工作. 快速而肮脏的解决方案是从您的Web应用程序中异步启动Web请求.然后可以返回开始操作的页面.调用的“隐藏”页面可以阻止,直到SP完成.正如我所说,这是一个令人讨厌但很容易的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – 在.cshtml文件中设置断点 – VS2013
- asp.net-mvc – 如何在mvc网格格式中格式化日期
- 我可以/我应该将新的ASP.NET MVC 2 RC项目升级到jQuery 1.4
- 判断应用程序是ASP.NET 1.1还是ASP.NET 2.0的方法
- asp.net-mvc – 单声道或Windows上的主机ServiceStack,MVC3
- asp.net-mvc – 为什么ASP.NET MVC在从IE而不是firefox发布
- asp.net-web-api – 为什么我在web api中从我的POST获得404
- asp.net-mvc – 将MVC内容文件夹放入Area
- ASP.net代码背后和来自C#
- asp.net-mvc – ASP.NET MVC:如何在localhost上自动禁用[R
- asp.net-mvc-2 – 我的MVC2应用程序可以在查询字
- asp.net-web-api – Web Api使用IDependencyReso
- asp.net – 使用linq进行Datalist分页
- asp.net中的Html.ActionLink MVC对象值格式错误
- ASP.Net缓存疑难解答 – CacheDuration属性似乎没
- asp.net – 用于在自联接表中显示嵌套s中的无限类
- 从ASP.NET中的web.sitemap文件构建菜单
- asp.net-mvc – MVC动作过滤器集合已修改;枚举操
- asp.net-mvc – asp.net mvc授权使用角色
- ASP.NET Core Identity核心知识