【问题标题】:Update ASP.NET web.config while still in process of client request仍在处理客户端请求时更新 ASP.NET web.config
【发布时间】:2010-03-18 17:25:14
【问题描述】:

如果在 ASP (ASP.NET 2.0) 服务器仍在处理客户端请求时更新了 web.config,会发生什么情况? - 进程会被杀死吗? - 如果没有,进程是否会读取 web.config 中的更新。

感谢您的意见

【问题讨论】:

    标签: asp.net web-config


    【解决方案1】:

    新的web.config 实际上是一个副本,因此正在进行的请求将不受影响地完成——它不会接收更改。请求完成后,新的web.config 将覆盖旧的web.config,后续请求将使用更新的值(在新的应用程序域中)。

    【讨论】:

      【解决方案2】:

      Microsoft:“ASP.NET 将在重启前处理所有待处理的请求”

      -- 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


      等等…… 只是一些杂项。有关在进程外存储会话状态的信息。

      ^-- http://msdn.microsoft.com/en-us/library/ms178586.aspx

      【讨论】:

      • 绝对是非常真实和好的引用,我回复了一个海报,询问如何制作一个按钮来重新启动他们的网络应用程序并告诉他们他们希望它只是更新 web.config 并获得 DV!
      • 我更喜欢保护 web.config 免受写入,并告诉用户改为写入/踢出链接到 Web.config 的外部配置文件“external.config”:
        |和|
      【解决方案3】:

      我相信,如果您对 web.config 进行任何更改,ASP.NET 会通过回收应用程序池自动重新加载您的应用程序。这当然会导致 InProc 会话状态的 Session、Application 和 Cache 数据丢失。

      【讨论】:

      • 请注意,您可以通过在应用运行时在文本编辑器中对 web.config 进行一些简单的修改然后将其保存回磁盘来看到这一点。
      【解决方案4】:

      AppDomain 将在请求完成后被卸载。

      【讨论】:

      • 所以请求仍然会被处理,并且响应将正确地发送回客户端直到下一个请求,对吗?
      猜你喜欢
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      相关资源
      最近更新 更多