私は新しいWebサイトをメインサイトとして展開していますが、見事に機能しています。
ルートURLの下のすべてのアプリケーションも、1つを除いて機能します。レガシーシステム(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は、レガシーアプリケーションではなく、新しいWebサイト用です。メインサイトの構成がなぜ重要なのかはわかりません。
[〜#〜] clarification [〜#〜]
レガシーアプリケーションのソースコードにアクセスできないため、そのアプリケーションのプロパティを調整できません。最適化dllをサイトに貼り付けても、修正されませんでした。他のユーザーには機能するかもしれませんが、私には機能しません。
回避策
別のURLの下に新しいサイトをセットアップし、ルートURLにトラフィックを新しいURLにリダイレクトし、レガシアプリケーションを置き換えられるまでそのまま実行できるようにします。非常にずさんなソリューションですが、今のところ動作します。
MVC5で新しい領域を作成した後、同じ問題に直面しました。自動生成web.configファイルがあります。 web.configファイルViewsフォルダーの下にある行を確認してください
<add namespace="System.Web.Optimization" />
これが必要な場合は、次のコマンドを使用してインストールします。
Install-Package Microsoft.AspNet.Web.Optimization
以下のようなパッケージマネージャーコンソールで
必要ないと思う場合は、単に<add namespace="System.Web.Optimization" />
web.configファイルの次のセクションの行
<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ページ)の名前を変更したことと、そのフォームの背後にある公開部分クラスの名前も変更したかったためです。これを行うと、前述のエラーコードが表示されます。追加した "using System.Web.Optimization;
"をコードビハインド(C#)に追加し、ソリューションを"クリーン "し、次に"ビルド "してからソリューション、"リビルド "して、エラーがなくなり、usingステートメントが使用されなかったため、削除しました私のソリューションにはそのようなエラーもエラーもないので、この奇妙な話を共有すると思いました。おそらく、「using
」ステートメントを使用する必要はありませんでしたが、何でもかまいません。