我正在部署一个新网站作为我的主要网站,它的工作非常精彩。
根网址下的所有应用程序都可以正常工作,除了一个。它是一个遗留系统(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粘贴到站点中也没有解决它。它可能适用于其他用户,但不适合我。
周围工作
我将新网站设置在另一个网址下,并将流量重定向到新网址的根网址,并允许旧版应用程序按原样运行,直到我们可以替换它为止。非常草率的解决方案,但它现在有效。
答案 0 :(得分:36)
答案 1 :(得分:27)
在MVC5中创建一个新区域后,我遇到了同样的问题。有自动生成 web.config 文件。检查视图文件夹下的 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>
答案 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中删除引用对我有用。