【问题标题】:MVC .Net web app - Combine web.config and global.asax - or deploy without web.configMVC .Net Web 应用程序 - 结合 web.config 和 global.asax - 或在没有 web.config 的情况下部署
【发布时间】:2014-03-19 12:45:31
【问题描述】:

我有一个 MVC .NET 应用程序。我以为我可以只在根文件夹中部署 web.config 。当然还有所有的子目录,如 VIEWS 等。哎呀。我一复制 global.asax,它就起作用了。

是否可以结合 web.config 和 global.asax ?那我就只能在根目录下有一个web.config了。

或者,以不同的方式设置 IIS?我正在使用 IIS 7.5

有办法吗?

谢谢

【问题讨论】:

  • 为什么要结合web.config?您可以在文件夹中嵌套多个 web.config。利用它:) 将有助于遵循关注点分离:)
  • 我只是想知道我是否可以拥有一个干净的根,只有一个文件,即 web.config 文件。感兴趣的,你在嵌套文件夹中做过哪些有趣的事情。我能想到的一件事是,每个 Area 都可以有自己的连接字符串或设置……但你有没有用过更有创意的东西?

标签: c# asp.net asp.net-mvc asp.net-mvc-4 iis


【解决方案1】:

我不确定您为什么要这样做,但这里有一些解释,希望它可以帮助您做出决定:

web.configglobal.asax 是完全不同的两个东西,在 ASP.Net 应用程序中具有完全不同的作用。

web.config,顾名思义,为应用程序提供必要的配置。它是应用程序运行所必需的。

global.asax 提供控制应用程序的事件(例如application_startapplication_endsession_start 等)。它不是严格要求的,因此除非您需要该功能,否则您不必包含它。 MVC 项目往往在 global.asax 中有一些代码,但它不需要那样。根据您应用程序的需要,您可以将 global.asax 中的所有代码移动到其他位置,然后完全删除该文件。

【讨论】:

  • 啊,这很有趣。我在 global.asax.cs 中确实有一些自定义映射和程序集加载,所以我会保留它。谢谢你的解释。
  • @user2489945 顺便说一句,我忘了提到这一点:如果你的所有代码都是代码隐藏文件 Global.asax.cs 并且 中没有任何内容Global.asax,那么我认为您可以安全地从您发布的网络文件夹中排除 Global.asax 文件(Global.asax.cs 的内容是编译成dll)。其实我没试过,所以不知道有没有副作用。
  • 我唯一拥有的就是这个......
  • @user2489945 是的,如您所知,它始终存在。正如我所提到的,如果这就是你所拥有的一切,我认为你可以安全地从你发布的网络文件夹中排除该文件。但同样,我不知道是否有任何副作用。
  • 如果我删除它,网站就无法加载。但这可能只是我对项目和 mvcContrib 所做的一些特别的事情。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-05-03
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多