【问题标题】:Deploying changes to global.asax将更改部署到 global.asax
【发布时间】:2011-05-17 15:22:05
【问题描述】:

我继承了一个需要一些维护的网络应用程序,并且我所做的所有更改都恰好位于 global.asax 文件中。一些谷歌搜索告诉我这是动态编译的(不存在 global.asax.cs 代码隐藏),所以我想我可以通过将新文件放入应用程序的根目录来部署更改。原来那里没有 global.asax 文件,但 /bin 文件夹中有一个 App_global.asax.compiled。我在我的开发机器上的任何地方都找不到这个 .compiled 文件,所以假设它仅由 IIS(而不是 asp.net 开发服务器)创建。

作为一个实验,我停止了应用程序池,重命名了 .compiled 文件,将 global.asax 复制到应用程序根文件夹并重新启动了应用程序池。几分钟后,.compiled 没有从我的新 global.asax 重新生成,所以我恢复了更改。

如何将我的更改添加到实时应用中?该应用程序很大,有很多 dll,所以我想尽可能避免进行完整部署。

谢谢

【问题讨论】:

    标签: asp.net iis


    【解决方案1】:

    App_global.asax.compiled 文件的存在告诉我,您的 ASP.NET 项目已配置为编译所有内容,而不是将 as*x 文件保留为可编辑。我什至不确定 .asax 文件是否可以像 .aspx 文件一样保持可编辑状态。但是你的肯定是编译进去的。

    因此,我相信您将不得不重新编译和重新部署整个东西。

    【讨论】:

      【解决方案2】:

      检查服务器上的 bin 文件夹,如果它包含 App_Code.dll 或类似的东西,那么它可能是在调试模式下发布的,您应该在预编译模式下发布项目,并且只上传 App_code.dll 以用于 global.asax 中的更改生效

      【讨论】:

        【解决方案3】:

        您不能只直接部署Global.Asax。如果需要,可以通过编辑 DLL 来实现。如果您在 MVC 项目上,那么您可以在 DLL 中看到 mvcapplication.cs。在那里我们可以应用更改。它对我有用。我已将 .net Reflector 与 Reflexil 2.1 一起使用。 DESCRIPTION

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-01
          • 1970-01-01
          相关资源
          最近更新 更多