2009-02-23 42 views
6

我想将我的ASP.NET MVC应用程序部署到Web托管公司(如DiscountASP.net)。我对Web服务器上web.config文件中需要的内容感到困惑。当我在本地创建项目时,我得到了一个臃肿的web.config以及各种附加模块,处理程序,编译器。我是否需要将所有这些项目添加到生产web.config文件?将ASP.NET MVC应用程序部署到IIS7并保持干净web.config

我仍然在IIS6中部署当前的ASP.NET应用程序(而不是MVC),并且我一直为生产环境手工制作一个简单的web.config,并将其上传到其余应用程序文件。这似乎与IIS7我打算使用Web服务器上的IIS管理器来构建web.config。在生产服务器上构建/管理web.config的最佳方式是什么?

回答

6

所以这里是我迄今为止发现的尝试将我的MVC应用程序部署到DiscountASP.net。

先觉得我发现了,我不得不确保System.Web.Mvc部署到,因为它不是安装在GAC中的bin:

http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

然后,我开始用超基本的web.config只包含数据库连接字符串。我的应用程序不起作用。

然后我复制这是我的本地web.config文件到服务器上的混乱和改变数据库连接字符串,事情开始工作,但我仍然得到错误信息:

Could not load type 'System.Web.Mvc.ViewPage<MyCustomModel>' 

后来我发现在这篇文章中解释了如何需要改变web.config中支持不使用隐藏文件的代码(你不需要由于某种原因当地Visual Studio的Web服务器来做到这一点):

http://blog.benhall.me.uk/2009/01/aspnet-mvc-rc1-removing-code-behind.html

Personall Ÿ我不喜欢简单的应用程序设置(如连接字符串和SMTP设置)与复杂的MVC(和AJAX.NET)基础结构设置混合在一起。一个不错的选择是托管公司(如DiscountASP.net)设置Master.config(或更高级别的web.config)以支持MVC,这样我的web.config只需包含我的简单应用程序设置。

1

也许你采取了一种搜索和破坏的方法,并在配置中使用芯片,直到你删除了所有你不需要的东西。在不知道应用程序及其依赖关系的情况下,很难说出您可能需要或可能不需要的内容。

最好的方法是始终有一个尽可能接近您的生产环境的开发环境 - 您不希望以这种方式编辑生产配置。

+0

比方说,我有一个非常简单的应用程序,我唯一添加到web.config的是一个数据库连接字符串。我是否需要将所有处理程序,模块和编译器加入到网络中?配置或将此信息已在machine.config? – 2009-02-23 20:48:35

+0

你应该能够去除其他东西,但是当你使用MVC时,可能有处理程序和MVC工作所需的模块。我可以告诉你的最好的事情就是在本地进行测试,直到你有一个精简的配置部署。 – 2009-02-23 20:59:31

3

.net 3.5和IIS7都在web.config中添加了相当多的文本。我所做的是使用IIS7中的IIS管理器来配置应用程序一次。然后,我将修改后的web.config复制到源代码管理中。这样,在环境之间迁移时,所有的IIS设置都会保留。

+3

我觉得web.config已经被垃圾填满了。很难跟踪它的全部内容。 – 2009-02-23 20:51:09

2

System.Web.Extensions是MS AJAX AKA Atlas的东西,有几个模块和处理程序和与此程序集相关的部分。如果你不使用MS AJAX的东西,随意删除它们。