50
|
this. __curious_geek · 技术社区 · 15 年前 |
![]() |
1
72
在 IIS 6 ,转到“应用程序池”部分,然后右键单击托管有问题的ASP.NET应用程序的池上的“属性”。转到“性能”选项卡,取消选中“空闲以下时间后关闭工作进程:”。 在 IIS 7 ,转到“连接”窗格并查找应用程序池,然后为承载应用程序的池选择高级设置。找到“空闲超时”属性并将其设置为“0”(这将禁用它)。 默认为20分钟不活动。取消选中该框后, AppDomain 由加载 worker process 它永远不会死(除非你扼杀了这个过程或者其他的东西)。默认情况下,IIS将 recycle the process 当它达到某个限制时,例如内存上限,但它也会启动一个新的请求,并“逐步”处理所有传入的请求,直到旧的请求未被使用为止,从而将中断最小化。 我还写了一个小的C班 keep your ASP.NET application alive ( alternate archived version )在正常情况下。由于它在应用程序中运行,很明显它无法阻止IIS或其他任何东西明确地终止进程,但它将保持应用程序“热”,例如,应用程序将永远不会空闲足够长的时间,以便IIS决定关闭它。 如果您不能直接控制您的IIS配置(例如共享主机),您最好的选择是在一个单独的系统上运行一个小应用程序-例如,一个始终在工作台上-它每隔x分钟访问一次您的站点,以防止应用程序池超时。没什么特别的-一个简单的 WebRequest 控制台应用程序中的while()循环就可以了。 |
![]() |
2
3
ASP.NET的一个优点是可以创建对象的静态(共享)实例。 为了避免外部进程的必要性,您可以在global.asax中创建一个静态计时器(每个示例),它用一个简单的webrequest来调用域中的一个页面。通过这种方式,该站点将一直保持活动状态,直到手动重置池为止。 |
![]() |
3
0
我写了一个小的C控制台应用程序,通过Windows任务调度器每10分钟保持4个站点的活动状态。生活再次美好。我们不会在凌晨2点到5点运行这个应用程序,只是为了让服务可以清理内存,如果这很重要的话。对于我们的网站来说,在那些时间里很少有人打开。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |