Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net能否关闭应用程序创建的线程?_Asp.net - Fatal编程技术网

asp.net能否关闭应用程序创建的线程?

asp.net能否关闭应用程序创建的线程?,asp.net,Asp.net,线程将在每个应用程序启动事件上启动 它将是一个监视线程,应该持续运行 因此,即使应用程序关闭,一旦重新启动,线程也会启动,以确保它始终运行 但是,我需要确保在应用程序运行时不会停止/关闭该线程 因此,简单地说,有人知道asp.net是否可以关闭这样一个线程而不实际停止/回收应用程序。作为一个设计问题,您不应该依赖asp.net来运行这样的线程。像应用程序回收这样的小事会给你带来很多麻烦 相反,创建一个windows服务来执行线程。这样你就不用担心了 更新 我只是想补充一点信息 IIS能够跨多个线

线程将在每个应用程序启动事件上启动

它将是一个监视线程,应该持续运行

因此,即使应用程序关闭,一旦重新启动,线程也会启动,以确保它始终运行

但是,我需要确保在应用程序运行时不会停止/关闭该线程


因此,简单地说,有人知道asp.net是否可以关闭这样一个线程而不实际停止/回收应用程序。

作为一个设计问题,您不应该依赖asp.net来运行这样的线程。像应用程序回收这样的小事会给你带来很多麻烦

相反,创建一个windows服务来执行线程。这样你就不用担心了

更新
我只是想补充一点信息

IIS能够跨多个线程和进程执行您的应用程序。一个标准的站点安装通常只分配了一个进程(又名:WebGarden),该进程会旋转大约20个线程来处理请求处理

但是,任何IIS管理员都可以轻松地向混合中添加更多进程。当一个站点可以处理单个进程时,他们通常会这样做,要么是因为请求处理时间太长,要么是处理程序线程的数量不够,要么是作为一种临时措施,如果应用程序存在足够多的问题,单线程将相当频繁地处理整个进程

如果在应用程序启动时有一个线程正在旋转,那么它将为站点的每个工作进程创建一个线程。这可能是您或您的继任者的意外行为

此外,监控应用程序几乎总是完全独立于它们所监控的应用程序。其中一个主要原因是,如果被监视的进程死亡、挂起或以其他方式变得无响应,那么监视应用程序本身仍然需要继续并记录此信息。否则,被监控的进程很可能会自动启动监控应用程序


所以,帮你自己一个忙,并将其转移到自己的过程中。在IIS服务器上执行此操作的最佳方法是创建一个windows服务,并赋予它执行所需操作的适当执行权限。

作为设计问题,您不应该依赖asp.net来运行这样的线程。像应用程序回收这样的小事会给你带来很多麻烦

相反,创建一个windows服务来执行线程。这样你就不用担心了

更新
我只是想补充一点信息

IIS能够跨多个线程和进程执行您的应用程序。一个标准的站点安装通常只分配了一个进程(又名:WebGarden),该进程会旋转大约20个线程来处理请求处理

但是,任何IIS管理员都可以轻松地向混合中添加更多进程。当一个站点可以处理单个进程时,他们通常会这样做,要么是因为请求处理时间太长,要么是处理程序线程的数量不够,要么是作为一种临时措施,如果应用程序存在足够多的问题,单线程将相当频繁地处理整个进程

如果在应用程序启动时有一个线程正在旋转,那么它将为站点的每个工作进程创建一个线程。这可能是您或您的继任者的意外行为

此外,监控应用程序几乎总是完全独立于它们所监控的应用程序。其中一个主要原因是,如果被监视的进程死亡、挂起或以其他方式变得无响应,那么监视应用程序本身仍然需要继续并记录此信息。否则,被监控的进程很可能会自动启动监控应用程序

所以,帮你自己一个忙,并将其转移到自己的过程中。在IIS服务器上执行此操作的最佳方法是创建一个windows服务,并赋予它执行所需操作的适当执行权限