2009-02-23 45 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的東西,隨意刪除它們。