![](/img/trans.png)
[英]The type or namespace name 'Http' does not exist in the namespace 'System.Web'
[英]The type or namespace name 'Optimization' does not exist in the namespace 'System.Web'
我正在部署一个新网站作为我的主要网站,它运行良好。
我在根 url 下的所有应用程序也都可以工作,除了一个。 这是一个被大量使用的遗留系统 (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 上运行的
我该如何纠正? 我还能尝试什么?
更新
我不知道它是否有所作为,但它在错误中引用的 Web.Config 是针对新网站的,而不是针对旧版应用程序的。 我不确定为什么主站点配置是一个因素。
澄清
我无权访问遗留应用程序的源代码,因此我无法调整该应用程序的属性。 将优化 dll 粘贴到站点中也没有修复它。 它可能适用于其他用户,但不适用于我。
解决
我在另一个 URL 下设置新站点并将流量重定向到根 URL 到新 URL,并允许旧应用程序按原样运行,直到我们可以替换它。 非常草率的解决方案,但它现在有效。
在 MVC5 中创建一个新区域后,我遇到了同样的问题。 有自动生成web.config文件。 检查Views文件夹下的web.config文件有一行
<add namespace="System.Web.Optimization" />
如果您需要它,请使用以下命令安装它。
Install-Package Microsoft.AspNet.Web.Optimization
在包管理器控制台,如下所示
如果您认为不需要,那么只需从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>
检查旧应用程序的Bin
文件夹。 它可能只需要您放入那个 DLL。 System.Web.Optimization
命名空间从 ASP.NET 4.5 开始就存在,因此它甚至可能不受支持。 旧版应用程序可能比这更旧。
在 Visual Studio 中.. 转到您的项目并查看引用树。
右键单击 System.Web.Optimization 并选择Properties
查找path
,如果是这种情况,您会发现它是空的,然后在您的 PC 中查找文件名 System.Web.Optimization.dll 并将其复制到您项目的bin
文件夹中,这将解决它
我刚刚遇到:“CS0234 C# 命名空间‘System.Web’中不存在类型或命名空间名称‘优化’(您是否缺少程序集引用?)”并找到了这个 stackoverflow 页面。 -- 我的原因是因为我重命名了我正在使用的 Web 表单(aspx 页面),我还想重命名该表单后面的公共部分类。 这样做会导致上述错误代码。 我在后面的代码(C#)中添加了“ using System.Web.Optimization;
”,“清理”了解决方案,然后“构建”了解决方案,然后“重建”了解决方案,现在错误消失了,使用语句不是' t被使用,所以我摆脱了它。 我的解决方案不再有那个或任何错误,所以我想我会分享这个奇怪的故事。 我可能不需要使用那个“ using
”语句,但无论如何。
从 Views/Web.config 中删除引用对我有用。
主要到区域
@Html.ActionLink("My Area Home", "Index", "Home", new { area = "MyArea" }, null)
区域到主要
@Html.ActionLink("Home", "Index", "Home", new { area = "" }, null)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.