gpt4 book ai didi

asp.net - 如何动态修补正在运行的ASP.NET应用程序?

转载 作者:行者123 更新时间:2023-12-04 03:03:14 26 4
gpt4 key购买 nike

有没有人提供如何修补正在运行的asp.net应用程序的示例?我正在设想的方案是,该应用程序可以使用已知的中央服务器来获取较新的版本。将较新的文件下载到临时位置,然后对其进行修补。

我可以看到的问题是,文件监视程序会拾取所有文件更改,然后重新加载应用程序域,这将停止当前的修补过程。我认为写入的每个文件都会触发应用程序的重新加载。

最佳答案

除非对特定文件进行文件监视,否则可以更新现有的aspx文件,而不会降低应用程序的运行速度。下次用户刷新浏览器时,他们将看到页面更新。但是请小心,如果您在页面上添加了其他服务器控件,并且DLL尚未更新,则会遇到问题。

如果更新应用程序的web.config或DLL文件,这将触发ASPNET工作进程的重新加载,并且任何新用户都将遭受通常所期望的“第一次延迟”。

如果您担心此过程,并且可以承受一些“停机时间”,建议您创建一个执行以下操作的脚本:

  • 将名为App_Offline.htm的文件上载到Web应用程序的根目录。 IIS将立即看到此文件并将用户重定向到该文件,而不进行任何.NET处理。您甚至可以在根文件夹中保留一个名为App_Offline_Disabled.htm的文件,并在适当的时候对其重命名。
  • 复制所有需要更新的文件,必要时覆盖/重新命名/复制。
  • 删除(或重命名)您的App_Offline.htm文件,以便IIS将开始将用户定向到更新的应用程序。如果您正在观看脚本运行,甚至可以自己访问网站以承担“首次加载”罚款,以便您的最终用户将一如既往地看到美观和清晰的内容。

  • 同样,我不知道您是否可以通过这种方式在站点上承担停机时间,但是我认为该过程本身很容易编写脚本以提供一个不错的自动化类型过程。

    关于asp.net - 如何动态修补正在运行的ASP.NET应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1145553/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com