我有一些问题需要在我开发基于MVC2的Web应用程序的盒子上工作。我用MvcDiagnostics.aspx对网站进行了测试,发现了以下内容
ASP.NET MVC程序集信息(System.Web.Mvc.dll)
已加载多个ASP.NET MVC程序集 应用
程序集版本:ASP.NET MVC 2 RTM(2.0.50217.0)全名: System.Web.Mvc,Version = 2.0.0.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35代码库: 文件:/// C:/Windows/assembly/GAC_MSIL/System.Web.Mvc/2.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll 部署:部署GAC
汇编版本:未知版本(3.0.20105.0)全名: System.Web.Mvc,Version = 3.0.0.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35代码库: file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Web.Mvc/v4.0_3.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll部署:GAC部署
我想我到处寻找参考资料。该项目中的引用仅指向2.0.0.0版本。 web.config似乎也没问题
<system.web>
<compilation debug="true" batch="false" defaultLanguage="c#" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
</system.web>
有什么建议去哪看?
答案 0 :(得分:1)
进行了更多追踪,发现Elmah造成了这个
Could not load type 'System.Web.Mvc.GlobalFilters' from assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
删除对elmah的任何引用都解决了问题
答案 1 :(得分:0)
检查引用中对System.Web.Mvc.dll文件的引用。确保它指向C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll
如果它指向ASP.NET MVC 4目录下的那个,那么在记事本中打开你的项目文件。寻找
<Reference Include="System.Web.Mvc">
<Private>False</Private>
</Reference>
这应该改为
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35, processorArchitecture=MSIL" />