Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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/2/.net/25.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
C# 什么是工人流程回收。。。。? 我想知道什么是工人流程回收 在工人流程回收时,它具体做什么 工作进程驻留在应用程序池中,可以进行配置 通过应用程序池 应用程序池是否负责 回收工人流程?还是由IIS负责回收 回收工人处理时会发生什么 不强制回收有什么影响_C#_.net_Iis 7_Worker Process_Recycle - Fatal编程技术网

C# 什么是工人流程回收。。。。? 我想知道什么是工人流程回收 在工人流程回收时,它具体做什么 工作进程驻留在应用程序池中,可以进行配置 通过应用程序池 应用程序池是否负责 回收工人流程?还是由IIS负责回收 回收工人处理时会发生什么 不强制回收有什么影响

C# 什么是工人流程回收。。。。? 我想知道什么是工人流程回收 在工人流程回收时,它具体做什么 工作进程驻留在应用程序池中,可以进行配置 通过应用程序池 应用程序池是否负责 回收工人流程?还是由IIS负责回收 回收工人处理时会发生什么 不强制回收有什么影响,c#,.net,iis-7,worker-process,recycle,C#,.net,Iis 7,Worker Process,Recycle,工作进程回收仅仅意味着重新启动asp.net工作进程(aspnet_wp.exe)。这是由于各种原因造成的。下面的文章非常得体地描述了事情。 请仔细检查。IIS工作进程回收是指IIS杀死它为处理传入请求而生成的子进程,并启动它们的干净副本的过程 IIS第一次在给定的应用程序池中获取web应用程序的请求时,会生成一个工作进程来实际执行该工作。此过程可以维护ASP.NET代码、ISAPI处理程序中的会话状态和静态数据等。随着时间的推移,IIS希望在不关闭服务器的情况下清理的处理过程中可能会出现问题

工作进程回收仅仅意味着重新启动asp.net工作进程(aspnet_wp.exe)。这是由于各种原因造成的。下面的文章非常得体地描述了事情。


请仔细检查。

IIS工作进程回收是指IIS杀死它为处理传入请求而生成的子进程,并启动它们的干净副本的过程

IIS第一次在给定的应用程序池中获取web应用程序的请求时,会生成一个工作进程来实际执行该工作。此过程可以维护ASP.NET代码、ISAPI处理程序中的会话状态和静态数据等。随着时间的推移,IIS希望在不关闭服务器的情况下清理的处理过程中可能会出现问题(应用程序代码中的内存泄漏、未配置的资源等)。因此,它会定期通知工作进程停止运行,并生成一个新进程

当回收期到来时,IIS停止向正在消亡的进程发送新的服务请求,并允许它完成正常执行的任何操作。它将提前生成一个新的替换进程,并在旧进程完成时开始向该进程发送新请求。一旦旧进程无事可做,它就会正常终止

工作进程被隔离到给定的应用程序池,因为IIS就是这样完成进程隔离的。(例如,这就是为什么您可以在一台服务器上混合使用.NET Framework版本——每个应用程序池都有自己独立的加载框架库。)应用程序池确定有关工作进程的其他事项,包括它们的凭据以及进程在关闭前停留的时间


确实没有一个很好的理由关闭回收,但如果一切正常,它不应该伤害任何东西。如果在工作进程中运行行为不正常的代码,则会出现问题;随着时间的推移,即使是微小的内存或资源泄漏也会累积起来,您必须关闭应用程序池来清理它们。通过重叠回收,IIS可以在不中断服务的情况下为您解决这一问题。

场景各不相同,但请记住:如果您的web应用程序对数据库信息进行了初始内存缓存(比如巨大的初始缓存),对新生成的apppool的第一个请求需要很长时间才能完成。

是重新启动aspnet_wp.exe还是w3wp.exe?不完全是,有一些例外情况。它更多地与IIS版本相关,而不是与服务器/客户端相关。在IIS 6.0+中,它是w3wp.exe,少于6个使用aspnet_wp。Windows XP 64位(不是服务器)使用IIS6,因此您仍然可以获得应用程序池和w3wp。Windows Server 2000是一个服务器,它使用aspnet_wp,因为IIS不支持应用程序池。@vcsjones your right:)。为了避免混淆,我刚刚删除了我的上述评论。不同之处在于IIS6有w3wp.exe和更低版本的IIS,它的aspnet_wp.exe+1:再加上一点,如果同时关闭回收,可能会影响性能。很长一段时间后,堆将变得碎片化,即使您确信应用程序根本没有泄漏内存。@vcsjones,感谢您添加几点来理解与workerprocess相关的问题(如果没有回收)