【问题标题】:Does Application_Start event in global.asax fires when code is re-published?重新发布代码时是否会触发 global.asax 中的 Application_Start 事件?
【发布时间】:2012-05-19 19:45:24
【问题描述】:

当新发布的代码保存在项目的 IIS Web 根目录中时,是否调用 global.asax 中的 Application_Start,

【问题讨论】:

    标签: asp.net asp.net-mvc-3 iis-6


    【解决方案1】:

    Application_Start 会在每次应用程序池被回收时触发,这通常在您更新 bin 文件夹或 web.config 中的某些文件时发生。因此,如果您重新发布站点并更新其中一些文件,IIS 将卸载应用程序,Application_Start 将在下次请求进入时触发。

    【讨论】:

    • 那么我们可以说Application_Start 在第一次请求时触发吗?
    • @SangramNandkhile 正确,在本地或远程运行调试器,验证 Application_Start 在应用程序池回收后第一次访问应用程序时被调用(我相信您现在已经找到了答案。响应是也适用于未来的读者)。
    • 更新文件时不会回收应用程序池。但 AppDomain 已重新加载。 Application_Start 确实会触发,但请删除关于应用程序池回收的令人困惑的声明。见这里:stackoverflow.com/a/64671746/56621
    【解决方案2】:

    如果您的 Global.asax Application_Start 代码没有在 IIS 发布的网站上触发:

    尝试将您的应用程序 AppPool 更改为 ASP.NET v4.0 Classic。 停止应用程序池 启动应用程序池 回收 AppPool。

    检查它是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多