Asp.net 编辑web.config-导致停机的原因?

Asp.net 编辑web.config-导致停机的原因?,asp.net,iis,web-config,downtime,Asp.net,Iis,Web Config,Downtime,在我工作的一个网站上,我们有两类他们可以要求的改变。一方面,他们有我必须重建和重新部署的东西。他们将这些视为“停机”更改,因为我们会显示一个漂亮的小屏幕,当我们重新启动时,我们会彻底测试站点 另一方面,他们要求我们做一些文本更改,打开和关闭功能,等等,我们已经将其隔离到web.config中。我们提供在部署窗口内部或外部执行这些操作—我们只需编辑文件,检查更改是否正确,然后继续工作 但是客户端的一个聪明人指出,编辑web.config会回收应用程序池,这就是停机时间。我从未注意到,但我想这是对的

在我工作的一个网站上,我们有两类他们可以要求的改变。一方面,他们有我必须重建和重新部署的东西。他们将这些视为“停机”更改,因为我们会显示一个漂亮的小屏幕,当我们重新启动时,我们会彻底测试站点

另一方面,他们要求我们做一些文本更改,打开和关闭功能,等等,我们已经将其隔离到web.config中。我们提供在部署窗口内部或外部执行这些操作—我们只需编辑文件,检查更改是否正确,然后继续工作

但是客户端的一个聪明人指出,编辑web.config会回收应用程序池,这就是停机时间。我从未注意到,但我想这是对的——当应用程序池不可用时,应用程序“关闭”


但是要多久?我并不是要你根据客户对停机时间间隔的舒适程度进行分类,但这是一个常见的观点吗?或者我们不应该担心web.config编辑会伴随一两秒钟的应用程序宕机
也就是说,您的案例中的停机时间将是最小的。当你保存Web.CONFIG文件时,应用程序池被循环使用,而我们则是毫秒。

< P>如果你担心停机时间,这会发生很多,我会考虑将这些设置移动到数据库。


也就是说,您的案例中的停机时间将是最小的。当您保存web.config文件时,应用程序池会被回收,我们说的是毫秒。

IIS通常会自行回收应用程序池,如果这些回收不会引起您的关注,那么这一次也不会


用户不应该收到任何类型的“服务不可用”错误,好吧。

IIS通常会自行回收应用程序池,如果这些回收不会引起您的担忧,那么这一次也不应该


用户不应该收到任何类型的“服务不可用”错误,好吧。

到目前为止所说的都是正确的

但是,有一种方法可以避免停机,只要您正在提取的值没有被缓存

您可以将.config文件的一部分移植到另一个文件,该文件不会重新引用应用程序池

在web.config文件中,它看起来像这样:

<appSettings file="moresettings.config"></appSettings>

那么您的外部文件将如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>   
<add key="SOMEKEY" value="MYVALUE"/>
</appSettings>

到目前为止所说的一切都是正确的

但是,有一种方法可以避免停机,只要您正在提取的值没有被缓存

您可以将.config文件的一部分移植到另一个文件,该文件不会重新引用应用程序池

在web.config文件中,它看起来像这样:

<appSettings file="moresettings.config"></appSettings>

那么您的外部文件将如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>   
<add key="SOMEKEY" value="MYVALUE"/>
</appSettings>

如前所述,IIS确实在回收应用程序池。不过,这并不像执行完整的IIS设置那么糟糕-用户不应该得到“服务不可用”。错误是因为Web服务器仍然在线并提供请求-它只需等待AppPool重新启动,这意味着此时用户访问的响应时间非常长。这可能是一个问题,当然,如果你有一个公共网站,并拒绝访问者

AppPool回收的其他副作用与iisreset相同:如果我没有弄错,它会刷新InProc会话缓存,并执行应用程序启动事件


因此,即使它相对无害,我仍然会将其视为停机时间。

如前所述,IIS确实在回收应用程序池。不过,这并不像执行完整的IIS设置那么糟糕-用户不应该得到“服务不可用”。错误是因为Web服务器仍然在线并提供请求-它只需等待AppPool重新启动,这意味着此时用户访问的响应时间非常长。这可能是一个问题,当然,如果你有一个公共网站,并拒绝访问者

AppPool回收的其他副作用与iisreset相同:如果我没有弄错,它会刷新InProc会话缓存,并执行应用程序启动事件


因此,即使它相对无害,我仍然会将其视为停机时间。

在它出现之前:这可能与另一个web.config编辑问题有点关联——但我不使用SharePoint,也不关心会话状态(我有cookie)。在它出现之前:这可能与另一个web.config编辑问题有点关联--但我不使用SharePoint,也不关心会话状态(我有cookies)。这是。应用程序池会根据您的设置(时间、内存消耗等)定期回收。一个简单的web.config更改不应该对你的应用程序产生负面影响,除非你正在做一些愚蠢的事情,比如在proc会话状态下使用(如果你是这样的话,你应该在那里努力修复一些东西)。应用程序池会根据您的设置(时间、内存消耗等)定期回收。一个简单的web.config更改不应该对你的应用程序产生负面影响,除非你正在做一些愚蠢的事情,比如在proc会话状态下使用(如果你是这样的话,那么你应该在那里努力修复一些东西)。