Application_Start是否在Web.config文件转换之前执行?

时间:2013-03-04 21:36:01

标签: c# .net asp.net-mvc asp.net-mvc-3 visual-studio

我有一个转换文件,可以为appconfig的{​​{1}}部分添加密钥。然后在Web.config方法中我试图读取添加的密钥,但它似乎并不存在。当我在转换文件上执行“预览转换”时,预览看起来没问题,并添加了一行。

问题:在Application_Start转化之前Application_Start是否已运行?

2 个答案:

答案 0 :(得分:3)

转换仅在实际部署期间发生,而在构建过程中发生。在你的情况下,它可能根本不会发生。

可以在构建期间触发转换,但需要手动修改项目文件才能实现。 This post提供了有关如何执行此操作的一些见解。

但是,您可以使用命令行中的MSBuild来执行转换(查看in here),这样您就可以触发构建后事件来执行转换。 This answer可能会提供您所需要的内容。

答案 1 :(得分:1)

正如@ rae1n在他的回答中解释的那样,web.config在部署期间被转换,例如。当您决定发布Web应用程序的发布版本时。 Application_Start是Web应用程序的入口点,也就是在应用程序启动并运行时执行的第一件事。在C#控制台应用程序中考虑Application_Start作为Main方法。编译您的应用程序并完成所需的任何转换。您部署了应用程序,最终用户启动了它。我希望现在对你来说有点清楚。