无法在服务器

时间:2015-06-26 06:05:50

标签: c# .net asp.net-mvc

我有一个带.NET Framework 4.0的asp.net MVC应用程序。现在在本地我将我的MVC版本更改为2.0.0.0到3.0.0.0并在服务器上部署,我发现该项目未成功部署。当我看到事件记录器时,我发现了以下错误

  

"异常消息:c:\ Apps \ Test \ WebUI \ Web.config(105):错误CS0234:类型或   命名空间名称' Mvc'名称空间中不存在System.Web' (是   你错过了一个装配参考?)"

当我看到我发现的web.config文件时

<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

<runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>

  </runtime>

搜索此错误并显示

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />

to 

<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
also try this
<bindingRedirect oldVersion="1.0.0.0-3.0.0.1" newVersion="3.0.0.1" />

但同样的错误发生了。 我也看到了windows / assembly,虽然安装了MVC 3,但只有system.web.mvc 2.0.0.0存在。

请为此妥善解决。

4 个答案:

答案 0 :(得分:0)

添加对system.web.mvc的引用,如果该引用不在引用列表中,请确保项目目标是框架4.5

答案 1 :(得分:0)

您必须在bin文件夹中拥有所需的程序集。如果它在构建后不存在,只需转到您的项目 - &gt;参考 - &gt;查找System.Web.Mvc - &gt;右键单击 - &gt;属性 - &gt; Copy Local应设置为true

如果没有此设置,程序集将不会被复制到应用程序文件夹,从而导致您提到的消息。

enter image description here

答案 2 :(得分:0)

在解决方案资源管理器中:

  • 展开您的References文件夹。
  • 右键单击System.Web.Mvc引用。
  • 选择“属性”。
  • 将“复制本地”值更改为true
  • 重建。
  • 重新部署。

如果我记得正确的MVC3开发的一些PIA时刻,你可能不得不为少数几个程序集执行此操作。如果你想节省一些时间来确定哪些需要调整,Phil Haack让他们列出on his blog。为了完整起见,这是列表:

  • Microsoft.Web.Infrastructure.dll
  • System.Web.Helpers.dll
  • System.Web.Mvc.dll程序
  • System.Web.Razor.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll

Visual Studio中较旧版本的工具未将“复制本地”属性设置为true,这会将其添加到\bin目录。

答案 3 :(得分:0)

我使用VS 12并建议使用WEB工具包安装VS 2015。 安装文件名是VS2015CommunityAzurePack。 如果使用VS 12,请不要这样做。我遇到了很多问题,需要花费很多时间来修复它。 当您将引用更改为“copy local = true”时,仅对System.Web引用执行此操作。