我刚刚将我的第一个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>
答案 0 :(得分:0)
嗯,会发生什么?实际上,您通常应该没问题,但您需要确保将Web服务器(通常是IIS)配置为从ASP.NET 4.x开始,而不是ASP.NET 2.x (这是其中一个设置 - “where”取决于IIS的版本)。如果有疑问,将System.Web.Mvc.dll
和Microsoft.Web.Mvc.dll
标记为copy-local(针对引用的属性)可能会有所帮助。
也;在IIS 7.x中更改为ASP.NET 4.x时可能需要一些调整和修改,例如:
等;我们最初得到了一些YSOD,直到我们修复了配置文件...
重新更新,听起来好像安装了.NET 4.x,IIS正在运行ASP.NET 4.x,但MVC 2似乎没有安装 。从MSDN或Web Platform Installer抓取并安装在服务器上。请注意,MVC与核心.NET的发布周期非常不同。