Asp.net 禁用IIS应用程序池中工作进程的回收的影响

Asp.net 禁用IIS应用程序池中工作进程的回收的影响,asp.net,wcf,iis,reporting-services,application-pool,Asp.net,Wcf,Iis,Reporting Services,Application Pool,我有一个托管在IIS中的WCF服务,它需要很长时间(大约5小时)才能执行。WCF服务基本上使用SSR(SQL server reporting services)生成一些报告,并将其保存到服务器上的某个位置。这个服务实际上在生成几个报告后就停止了,所以我在应用程序池中禁用了“回收工作进程”、“空闲后关闭工作进程”和“限制内核请求队列”,这就解决了这个问题,并且生成了所有报告,而不管生成报告的数量。但我不确定这是否是正确的修复方法,我想知道在IIS中取消选中WCF服务的应用程序池中的这些设置会产生

我有一个托管在IIS中的WCF服务,它需要很长时间(大约5小时)才能执行。WCF服务基本上使用SSR(SQL server reporting services)生成一些报告,并将其保存到服务器上的某个位置。这个服务实际上在生成几个报告后就停止了,所以我在应用程序池中禁用了“回收工作进程”、“空闲后关闭工作进程”和“限制内核请求队列”,这就解决了这个问题,并且生成了所有报告,而不管生成报告的数量。但我不确定这是否是正确的修复方法,我想知道在IIS中取消选中WCF服务的应用程序池中的这些设置会产生什么影响?有没有更好的方法来解决这个问题?

对于任何长时间运行的进程,最好在IIS之外进行

在这种情况下,我将有一个常规的windows服务运行,它监视一个请求队列。当请求生成报告时,它将派生一个线程来执行生成

web服务将负责3件事。首先,将项目添加到要处理的队列中。其次,检查队列上的状态,以确定报告是否准备就绪。第三,将完成的报告发送回调用客户端

这将允许客户机在报告请求上执行fire-and-forget操作,稍后再打电话检查其状态。此外,这将意味着,如果IIS回收无论出于何种原因,你仍然是好的


对于PosiPoT,我会添加一些错误处理代码,当Windows服务重新启动时,它可以重新启动执行中的报表作业。这将使它更加健壮,并允许您随时重新启动服务器。

对于任何长时间运行的进程,最好在IIS之外进行

在这种情况下,我将有一个常规的windows服务运行,它监视一个请求队列。当请求生成报告时,它将派生一个线程来执行生成

web服务将负责3件事。首先,将项目添加到要处理的队列中。其次,检查队列上的状态,以确定报告是否准备就绪。第三,将完成的报告发送回调用客户端

这将允许客户机在报告请求上执行fire-and-forget操作,稍后再打电话检查其状态。此外,这将意味着,如果IIS回收无论出于何种原因,你仍然是好的


对于PosiPoT,我会添加一些错误处理代码,当Windows服务重新启动时,它可以重新启动执行中的报表作业。这将使它更加健壮,并允许您在任何时候重新启动服务器。

我还禁用了iis为我的应用程序自动关闭的所有过程,没有任何问题。我已经监控了内存限制,当然程序工作顺利,没有任何内存问题

我认为,这种自动关闭触发器主要是为将太多的网站放在一起的过程而设计的,可能其中一些网站没有很好的编程。但是,如果您是iis的主控程序,并且您已经检查了没有内存问题的程序,那么最好不要关闭它,或者至少以某种方式控制关闭过程


Ok最好在IIS之外创建长时间运行的进程,但开发它、安装它、检查它都不是那么简单。

我还禁用了IIS为我的应用程序自动关闭的所有进程,没有任何问题。我已经监控了内存限制,当然程序工作顺利,没有任何内存问题

我认为,这种自动关闭触发器主要是为将太多的网站放在一起的过程而设计的,可能其中一些网站没有很好的编程。但是,如果您是iis的主控程序,并且您已经检查了没有内存问题的程序,那么最好不要关闭它,或者至少以某种方式控制关闭过程

Ok最好在IIS之外创建长时间运行的进程,但开发它、安装它、检查它并不是那么简单