WCF服务在某些时候没有响应
我们在.Net Framework 4.0中创建了一个带有WCF服务的MVC应用程序。我们在Windows Server 2008和IIS 7.0中都托管了该应用程序。我的MVC应用程序向wcf服务发送请求。每3到4小时我的应用程序没有响应。在IIS中重新启动WCF后,它就是工作文件。WCF服务在某些时候没有响应
我检查事件日志并发现“服务应用程序池”ASP.NET v4.0“的进程ID为”xxxx“的工作进程请求回收,因为工作进程已达到其允许的处理时间限制。
任何人都可以帮助我找出解决问题的方法。
我的应用程序池设置显示在下面
你的应用程序池必须被回收IIS由于默认配置。选择应用程序池并在“操作”面板上,单击“回收..”
您可以取消选中“规则时间间隔”以避免这种情况。但默认值是1740分钟,这意味着29小时,请检查设置到您的AppPool的值,因为这不符合您3到4小时的问题。
无论如何,回收不会使应用程序不可用,它会在新请求时重新启动。
如果您的AppPool没有启动,可能会发生一些错误,请检查事件日志以在AppPool重新启动期间找出任何错误。
我有检查事件日志但没有在事件查看器中看到任何事件日志。当我重新启动或在IIS中回收我的应用程序时,它工作正常。 – Bharat
如果您可以升级到至少IIS 7.5,则可以使用IIS应用程序初始化。这将允许您的应用程序定期回收,这对于其稳定性来说是一件好事,而不会定期不可用。这是因为Application Initialisation与IIS工作进程重叠,在杀死旧工作进程之前启动并初始化新的工作进程。它奇迹般地处理两个工作进程之间的重新路由请求。
感谢PateAC,我用8.0升级了IIS,并检查了应用程序池回收。这是很好的功能。但我的问题仍未解决。 – Bharat
要启用应用程序初始化,还需要在应用程序上设置PreloadEnabled = true,并在应用程序池上设置StartMode = alwaysRunning。另请注意,应用程序初始化是IIS 8中的一个可选模块 - 您可能会发现需要在Windows功能中启用它。以下是谷歌可以找到的许多指导性文章之一的URL:https://blogs.msdn.microsoft.com/benjaminperkins/2014/01/07/configure-the-iis-application-initialization-module/ – PeteAC
请看这个[答案](http://stackoverflow.com/questions/3127449/wcf-service-does-not-respond-how-to-debug/43867060#43867060)希望这将是有用的 –