【发布时间】:2010-03-18 17:25:14
【问题描述】:
如果在 ASP (ASP.NET 2.0) 服务器仍在处理客户端请求时更新了 web.config,会发生什么情况? - 进程会被杀死吗? - 如果没有,进程是否会读取 web.config 中的更新。
感谢您的意见
【问题讨论】:
标签: asp.net web-config
如果在 ASP (ASP.NET 2.0) 服务器仍在处理客户端请求时更新了 web.config,会发生什么情况? - 进程会被杀死吗? - 如果没有,进程是否会读取 web.config 中的更新。
感谢您的意见
【问题讨论】:
标签: asp.net web-config
新的web.config 实际上是一个副本,因此正在进行的请求将不受影响地完成——它不会接收更改。请求完成后,新的web.config 将覆盖旧的web.config,后续请求将使用更新的值(在新的应用程序域中)。
【讨论】:
-- http://msdn.microsoft.com/en-us/library/ms178473.aspx
当应用程序重新启动时 必需,ASP.NET 将为所有 来自现有的待处理请求 应用程序域和旧 重新启动之前的程序集 应用程序域并加载新的 程序集。
并通过更改 asp.net Web.config 文件来遵循逻辑流程...
“配置更改导致应用程序域重新启动”
应用程序有效地重新启动。但是,在第一个简介中还提到了一个技巧来解决这个“问题”。
对配置设置的更改 Web.config 文件间接导致 应用程序域重新启动。 这 行为是由设计发生的。你可以 可选择使用 configSource 引用外部的属性 配置文件不会导致 进行更改时重新启动。为了 更多信息,请参见 configSource 继承的一般属性 部分元素。
尝试更改配置 由没有文件的人提交 编辑文件的权限不会 导致应用程序重新启动 域。
^-- http://msdn.microsoft.com/en-us/library/ackhksh7.aspx
如果存储在进程中,您的应用程序、会话和其他状态将丢失...
当使用进程内 会话状态模式,会话状态数据 如果 aspnet_wp.exe 或 应用程序域重新启动。
^-- http://msdn.microsoft.com/en-us/library/87069683(VS.71).aspx
生命周期的影响 应用程序中存储的信息 状态。 .NET 框架应用程序 域或托管进程的进程 基于 .NET 的应用程序可能会被撕裂 随时倒塌 在应用程序执行期间(作为 崩溃、代码更新的结果, 计划进程重新启动,等等 开)。
^-- http://msdn.microsoft.com/en-us/library/bf9xhdz4(VS.71).aspx
等等…… 只是一些杂项。有关在进程外存储会话状态的信息。
【讨论】:
我相信,如果您对 web.config 进行任何更改,ASP.NET 会通过回收应用程序池自动重新加载您的应用程序。这当然会导致 InProc 会话状态的 Session、Application 和 Cache 数据丢失。
【讨论】:
AppDomain 将在请求完成后被卸载。
【讨论】: