2010-04-13 124 views
8

我開發了一個ASP.NET MVC 2網站,現在需要將其部署到我的Web服務器。我已經克服了一些障礙,因爲ASP.NET沒有安裝等,但我現在已經到了可以提供簡單內容文件的地步,如果我嘗試擊中我的MVC URL之一,我可以得到:如何在IIS7上安裝asp.net mvc 2?

無法加載文件或程序集「System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35」或其某個依賴項。該系統找不到指定的文件。

毫不奇怪,因爲我沒有安裝MVC2。問題是,我找不到有關如何安裝它的任何好信息!

Microsoft Download Center列出了3個文件,其中沒有一個看好:

的ASP.NET MVC-2-RTM-RELEASE-Notes.doc

AspNetMVC2_VS2008.exe

mvc2- ms-pl.zip

該網站並不費心解釋文件實際是什麼,但我認爲最後一個文件是源代碼。無論如何,這就是它的樣子。發行說明沒有任何幫助,因爲它們都是關於在開發機器上安裝的,實際上EXE的名稱清楚地表明,這也是關於Visual Studio集成的。

那麼我怎麼實際上部署該死的東西?

鏈接到Scott Gu's blog的其他選項是Microsoft Web Platform Installer。現在,我不想安裝更多的MVC2,而且我已經安裝了IIS等,所以這看起來有點沉重。但它都是學術性的,因爲它拒絕在我的服務器上運行,說「你的系統不被支持」或者說有這樣的話。 (服務器是Windows Server 2008 Standard SP2,所以我真的不知道它是什麼問題)。

幫助!

[這是荒謬的,這應該是這麼難! - 或者是不難的,但肯定是一個良好的保密]

+0

進出口猜測.net框架4.0將爲你做這個 – 2010-04-13 11:15:28

+0

是的,詹姆斯是正確的。 – 2010-04-13 11:21:57

+1

@James:只有當應用程序的目標是.Net 4.0(它不是,或者他會得到不同的錯誤) – SLaks 2010-04-13 11:28:26

回答

9

要部署MVC應用程序,您只需確保將引用設置爲複製到bin文件夾。具體來說,這些DLL將需要在那裏...

System.ComponentModel.DataAnnotations.dll 
System.Web.Abstractions.dll 
System.Web.Mvc.dll 
System.Web.Routing.dll 

注:複製引用到您的bin文件夾。

  1. 在 參考右鍵單擊 項目的「參考」一節
  2. 選擇「屬性」
  3. 找到:

    在實踐中,您可以通過以下步驟執行此操作「複製本地」屬性和 將其設置爲「true」

請注意!

System.Web.Abstractions.dll 
System.Web.Routing.dll 

您只需要這兩個如果.NET 3.5 SP1尚未安裝 - 如果你沒有SP1,則需要包括這兩個DLL,這是SP1的一部分,並通過MVC需要用於路由。

+0

@索尼:據推測,System.Web.dll(除了Mvc之外的其他人)已經在那裏了,因爲我確實有ASP.NET? – 2010-04-13 11:41:29

+0

@索尼:你能解釋一下你的意思嗎?「設置引用複製」?我想我知道,但爲了別人的利益... – 2010-04-13 11:41:45

+0

你好,我已經將複製本地信息添加到答案的底部。我發現我需要將所有這5個設置爲本地複製。 – Fenton 2010-04-14 07:40:10

1

複製System.Web.Mvc.dll程序從開發計算機應用程序的Web服務器上的Bin文件夾(或GAC)。

此文件來自於AspNetMVC2_VS2008.exe。

+0

@SLaks:謝謝,如果這樣做很好。但是,當然,「System。*」dll的「正確」位置在GAC中,在這種情況下肯定應該有一個安裝程序或其他的東西?像這樣複製文件似乎非常*雜亂無章。 – 2010-04-13 11:40:08

1

您不需要將這些文件放在Server GAC中。你可以,但你不需要。

您可以簡單地將這些文件複製到服務器上的/bin目錄中。實際上,如果您在右鍵單擊參考時將Copy Local設置爲true,則它將執行此操作。

你需要確保引用此文件路徑:

System.Web.Mvc.dll

在你/bin目錄。

5

正確的答案是由達林季米特洛夫在this answer給出(貼在這裏爲您提供方便):

你可以做一個服務器上安裝它不需要安裝Visual Studio:

msiexec /i AspNetMVC2.msi /l*v .\mvc.log MVC_SERVER_INSTALL="YES" 

現在你可能會問這個AspNetMVC2.msi從哪裏來。其實你從here下載AspNetMVC2_VS2008.exe,將.exe重命名爲.zip,在裏面你會找到你要找的東西(在mvcruntime子文件夾中)。

+0

請注意:打開存檔後,您應該轉到子文件夾「.rsrc_1 \」以查找「mvcruntime」子文件夾。 – Jehy 2015-08-17 07:04:45

1

我發現運行web平臺安裝工具非常適合讓服務器和開發機器運行。它可以在這裏找到... http://www.microsoft.com/web/default.aspx

+0

看到我的問題 - 由於某種原因,它無法在我的服務器上運行。 – 2010-05-18 10:30:24