部署MVC2应用程序应该已经存在哪些DLL

时间:2010-10-12 04:56:45

标签: .net asp.net-mvc-2

我刚刚将我的第一个MVC2应用程序部署到我们的本地Web服务器(它位于我们的网络中,因此可以根据需要进行修复/更改)。服务器最初是用.Net 2构建的,我们的网络管理员安装了.Net 4,所以我不能100%确定一切是否在正确的位置。

我想知道的是,所有System.Web。*等DLL(.Net Framework版本4)是否已经在此服务器上的GAC中,或者是否应该将我们的项目显式包含(copy local = true)( Bin)文件夹?

OR

安装出了什么问题,应该修复/重新安装.Net吗?

在这台服务器上的Gac中,据我所知,只有.net 2.0程序集。

当我开始在我的项目中调用AspNet成员资格时,会出现以下错误。

通过在我的Bin目录中包含MVC DLL,可以轻松纠正第30行。我只是不确定我应该走多远?我是否包含所有内容?

在YSOD的底部

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1

所以我猜我的网站正在运行.Net4

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: Could not load file or assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Source Error: 


Line 29:         <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
****
Line 30:         <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
****
Line 31:         <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Line 32:       </assemblies>

1 个答案:

答案 0 :(得分:0)

嗯,会发生什么?实际上,您通常应该没问题,您需要确保将Web服务器(通常是IIS)配置为从ASP.NET 4.x开始,而不是ASP.NET 2.x (这是其中一个设置 - “where”取决于IIS的版本)。如果有疑问,将System.Web.Mvc.dllMicrosoft.Web.Mvc.dll标记为copy-local(针对引用的属性)可能会有所帮助。

也;在IIS 7.x中更改为ASP.NET 4.x时可能需要一些调整和修改,例如:

  • 更改处理程序的配置方式
  • 更改为请求验证(xss)

等;我们最初得到了一些YSOD,直到我们修复了配置文件...


重新更新,听起来好像安装了.NET 4.x,IIS正在运行ASP.NET 4.x,但MVC 2似乎没有安装 。从MSDNWeb Platform Installer抓取并安装在服务器上。请注意,MVC与核心.NET的发布周期非常不同。