我开发了一个ASP.NET MVC 2网站,现在需要将其部署到我的Web服务器上。我已经克服了一些障碍,因为ASP.NET没有安装等等,但我现在已经到了可以提供普通内容文件的地步,如果我尝试点击我的一个MVC URL,我得到这个:
无法加载文件或程序集'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 :(得分:9)
要部署MVC应用程序,您只需确保将引用设置为复制到bin文件夹。具体来说,这些DLL需要在那里......
System.ComponentModel.DataAnnotations.dll
System.Web.Abstractions.dll
System.Web.Mvc.dll
System.Web.Routing.dll
注意:复制对bin文件夹的引用。
实际上,您可以按照以下步骤执行此操作:
请注意!
System.Web.Abstractions.dll
System.Web.Routing.dll
如果尚未安装.NET 3.5 SP1,则只需要这两个 - 如果没有SP1,则需要包含这两个dll,它们是SP1的一部分,并且是MVC用于路由的。
答案 1 :(得分:5)
Darin Dimitrov在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
子文件夹中)。
答案 2 :(得分:1)
将System.Web.Mvc.dll从开发计算机复制到Web服务器(或GAC)上的应用程序Bin文件夹。
此文件来自AspNetMVC2_VS2008.exe。
答案 3 :(得分:1)
您无需将这些文件放在Server GAC中。你可以,但你不需要。
您只需将这些文件复制到服务器上的/bin
目录即可。实际上,如果您在右键单击引用时将Copy Local
设置为true,它就会执行此操作。
您需要确保此文件的参考路径:
System.Web.Mvc.dll
位于您的/bin
目录中。
答案 4 :(得分:1)
我发现运行Web平台安装程序工具非常适合运行服务器和开发机器。它可以在这里找到...... http://www.microsoft.com/web/default.aspx