![]() |
1
3
IIS通常会自行回收应用程序池,如果这些回收不会引起您的关注,那么这一次也不应该。 用户不应该收到任何类型的“服务不可用”错误,afaik。 |
![]() |
2
5
到目前为止所说的都是正确的。 但是,有一种方法可以避免这种停机时间,只要您正在提取的值不被缓存。 您可以将.config文件的一部分移植到另一个文件,这不会重新设置应用程序池的样式。 在web.config文件中,它看起来像这样:
然后您的外部文件将如下所示:
|
![]() |
3
3
如果您关心停机时间,并且这种情况经常发生,那么我会考虑将这些设置移到数据库中。 也就是说,在您的情况下,停机时间将是最小的。当您保存web.config文件时,应用程序池会被回收,我们说的是毫秒。 |
![]() |
4
2
如前所述,IIS确实在回收应用程序池。不过,这并不像执行完整的iisreset那么糟糕-用户不应该得到“服务不可用”。错误是,Web服务器仍然在线并提供请求服务-它只需要等待AppPool重新启动,这意味着此时用户访问的响应时间非常长。当然,如果你有一个公共网站,并且把访问者拒之门外,这可能是一个问题。 AppPool回收的另一个副作用与iisreset相同:如果我没有弄错,它会刷新Inproc会话缓存,并执行应用程序启动事件。 所以即使它相对无害,我还是会把它当作停机时间。 |