she*_*tie 4 asp.net-mvc web-farm iis-7.5
我为我的ASP.NET MVC站点配置了重叠回收.
据我所知(从这个SO问题),如果我回收应用程序池,这将启动一个新的w3wp.exe进程来承担正在回收的进程的负载,并且只有当新进程初始化并采取加载,旧进程将被关闭.如果我停止/启动应用程序池,它会立即执行杀死,而不会让进程正常退出或让替换进程先启动.
问题:当我编辑我的Web.config文件时,它将重新启动关联的IIS应用程序池.这会引发漂亮的重叠回收行为,还是残酷的停止/启动行为?
我正在尝试确定是否需要从负载平衡的服务器场中取出服务器并对服务器流量进行一次停止以便编辑配置设置.
我决定用科学.我在负载测试工具下运行了我的服务器实验,在重复编辑和保存我的Web.config文件时,请求被填入.
将更改保存到Web.config文件时,没有删除任何请求.
我确实观察到在加载新设置时CPU活动的短暂峰值,但实际上几乎没有注意到.
我能够通过使Web.config文件格式化并保存它来证明设置已加载.这立即导致请求开始失败.
让我感到惊讶的是,process id使用Web.config编辑没有改变.我对IIS重叠回收的理解是让IIS启动一个新的w3wp.exe进程,然后关闭旧进程.这意味着不同的进程ID.所以我不认为重叠回收在这里踢.
由于它process id是相同的,所以我认为它是一个完全独立的机制,可以加载/卸载AppDomain.这似乎得到了本文件的支持,相关内容转载如下:
配置更改导致重新启动应用程序域
对Web.config文件中的配置设置的更改间接导致应用程序域重新启动.此行为是通过设计发生的.您可以选择使用configSource属性来引用在进行更改时不会导致重新启动的外部配置文件.有关更多信息,请参阅由Section Elements继承的General Attributes中的configSource.
TLDR
Web.config编辑不会导致重叠循环或残酷的停止/启动行为.AppDomain将重新加载新设置,而不会中断请求处理.
http://msdn.microsoft.com/en-us/library/ackhksh7.aspx
| 归档时间: |
|
| 查看次数: |
2687 次 |
| 最近记录: |