[英]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.