类型或命名空间名称'优化'名称空间中不存在System.Web'

时间:2014-10-18 23:41:28

标签: c# html .net

我正在部署一个新网站作为我的主要网站,它的工作非常精彩。

根网址下的所有应用程序都可以正常工作,除了一个。它是一个遗留系统(c#.net),使用频繁,遗憾的是,我无法访问源代码。

当我运行遗留应用程序www.mysite.com/crm时,出现以下错误:

Server Error in '/crm' Application.

Compilation Error

Description: An error occurred during the compilation of a resource required to 
service this request. Please review the following specific error details and modify 
your source code appropriately. 

Compiler Error Message: CS0234: The type or namespace name 'Optimization' does not 
exist in the namespace 'System.Web' (are you missing an assembly reference?)

Source Error:


Line 17:     <pages>
Line 18:       <namespaces>
Line 19:         <add namespace="System.Web.Optimization" />
Line 20:       </namespaces>
Line 21:     <controls>

Source File: e:\WebSites\newsite\Web.config    Line: 19 


Show Detailed Compiler Output:

Show Complete Compilation Source:


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18446

错误是列出主站点的web.config,它可以正常运行。但是,只有在主站点下运行应用程序时才会发生这种情况。

这在Server 2008 R2和IIS7上运行

我该如何纠正?我还能尝试什么?

UDPDATE

我不知道它是否有所作为,但它在错误中引用的Web.Config是针对新网站的,而不是针对遗留应用程序。我不确定为什么主站点配置是一个因素。

澄清

我无法访问旧版应用程序的源代码,因此无法调整该应用程序的属性。将优化dll粘贴到站点中也没有解决它。它可能适用于其他用户,但不适合我。

周围工作

我将新网站设置在另一个网址下,并将流量重定向到新网址的根网址,并允许旧版应用程序按原样运行,直到我们可以替换它为止。非常草率的解决方案,但它现在有效。

7 个答案:

答案 0 :(得分:36)

我现在刚刚面对这个问题:

Error

我重新安装了optmization框架,一切正常:

Install-Package Microsoft.AspNet.Web.Optimization

我希望它有所帮助!

答案 1 :(得分:27)

在MVC5中创建一个新区域后,我遇到了同样的问题。有自动生成 web.config 文件。检查视图文件夹下的 web.config 文件是否有一行

<add namespace="System.Web.Optimization" />
  1. 如果需要,请使用以下命令安装它。

    Install-Package Microsoft.AspNet.Web.Optimization
    

    在包管理器控制台,如下所示

    pmc

  2. 如果您认为不需要,只需从 web.config 文件中的以下部分删除<add namespace="System.Web.Optimization" />

    <namespaces>
       <add namespace="System.Web.Mvc" />
       <add namespace="System.Web.Mvc.Ajax" />
       <add namespace="System.Web.Mvc.Html" />
       <add namespace="System.Web.Routing" />
       <!--<add namespace="System.Web.Optimization" />-->
       <add namespace="AutoParts.Web" />        
    </namespaces>
    

答案 2 :(得分:9)

检查遗留应用程序的Bin文件夹。它可能只需要您放入该DLL。从ASP.NET 4.5开始存在System.Web.Optimization命名空间,因此甚至可能不支持它。旧版应用程序可能比旧版本更早。

答案 3 :(得分:2)

在Visual Studio中。转到项目并查看“引用”树。

右键单击System.Web.Optimization并选择Properties

寻找path,你会发现它是空的 如果是这样的话 在PC上查找文件名System.Web.Optimization.dll并将其复制到项目的bin文件夹中,这将解决它

答案 4 :(得分:1)

我刚刚体验过:“CS0234 C#类型或命名空间名称'优化'在命名空间'System.Web'中不存在(你是否缺少程序集引用?)”并找到了这个stackoverflow页面。 - 我的原因是由于我重命名了我正在使用的Web表单(aspx页面),我还想重命名该表单后面的公共部分类。这样做导致了上述错误代码。我将“using System.Web.Optimization;”添加到后面的代码(C#),“清理”了解决方案,然后“构建”然后解决方案,然后“重建”解决方案,现在错误消失了,并且使用语句不是使用,所以我摆脱它。我的解决方案不再有那个或任何错误,所以我想我会分享这个奇怪的故事。我可能不需要使用“using”语句,但无论如何。

答案 5 :(得分:0)

主要到区域

@Html.ActionLink("My Area Home", "Index", "Home", new { area = "MyArea" }, null)

主要区域

@Html.ActionLink("Home", "Index", "Home", new { area = "" }, null)

答案 6 :(得分:0)

从Views / Web.config中删除引用对我有用。

相关问题