将更改部署到global.asax

时间:2011-05-17 15:22:06

标签: asp.net iis

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

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

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

由于

3 个答案:

答案 0 :(得分:4)

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

出于这个原因,我相信你将不得不重新编译和重新部署整个事情。

答案 1 :(得分:3)

检查服务器上的bin文件夹,如果它包含App_Code.dll或类似内容,那么它可能以调试模式发布,您应该以预编译模式发布项目,并仅将global.asax中的更改上传到App_code.dll生效

答案 2 :(得分:0)

您无法直接部署Global.Asax。如果你想,那么你可以通过编辑DLL来实现。如果您使用的是MVC项目,则可以在DLL中看到mvcapplication.cs。我们可以应用更改。它对我有用。我使用了.ref Reflector和Reflexil 2.1。 DESCRIPTION