0

我在开发基于 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 代码库:file:///C:/Windows/assembly /GAC_MSIL/System.Web.Mvc/2.0.0.0__31bf3856ad364e35/System.Web.Mvc.dll 部署:GAC-deployed

程序集版本:未知版本(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-deployed

我想我到处寻找参考资料。项目中的引用只指向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>

有什么建议在哪里看?

4

2 回答 2

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 的任何引用解决了该问题

于 2013-06-08T22:48:21.430 回答
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" />
于 2013-12-19T04:25:15.197 回答