パーサーエラーメッセージ:タイプ 'TestMvcApplication.MvcApplication'をロードできませんでした


152

運用サーバーの1つで次のエラーが発生します。なぜそれがDEVサーバーで動作しているのかわからない?

パーサーエラーの 説明:この要求を処理するために必要なリソースの解析中にエラーが発生しました。以下の特定の解析エラーの詳細を確認し、ソースファイルを適切に変更してください。

パーサーエラーメッセージ:タイプ 'TestMvcApplication.MvcApplication'を読み込めませんでした。

ソースエラー

1行目:<%@ Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Language = "C#"%>

ソースファイル:/global.asax行:1

以前に誰かがこのエラーに遭遇したかどうか、そしてそれがどのように解決されたかはわかりませんが、私は終わりに達しました。任意の助けいただければ幸いです。

これは公開されたコードであるため、すべてコンパイルされていることにも言及する必要があります。コンパイラの設定に問題があるのでしょうか?



15
Visual Studioを終了し、再起動して修正します。
RickAndMSFT 2013年

global.asaxファイルを削除して新しいファイルを追加すれば、問題ありません。
DotNetGeek 2013

これは、以前は機能していたアプリケーションをデプロイするときに起こりました。IIS(7)の何かが悪い状態になりました。IISをリセットすると問題が修正されました。
BurnsBA 2016

回答:


169

他の答えはどれもうまくいきませんでした。Webプロジェクトの出力パスを変更してエラーを修正しました。私はそれをbin \ debugに設定していましたが、出力パスが単に「bin」に設定されていない限り、Webプロジェクトは機能しません


これは私はあまりの悲しみを引き起こし、私の問題だったので、ここで私のために働いた他のソリューション...のどれも
ザック

3
+1これも私の問題でした。エラーメッセージとこれに関するヘルプは、基本的に存在しません。ありがとう。
Noldorin

4
私にとって、bin \はエラーを出していました。それをbinのみに変更しました。そしてそれは働いた。
Nanu 2013年

1
私にとっての問題は、誤ってx86をアクティブなプラットフォームとして選択していたことで、この構成ではプロジェクト設定が間違っていました(Bin \ Debug \ x86)。Any CPUに戻すと問題が解決しました。しかし、出力パスの変更も機能しました。
Lars Udengaard 2013

13
したがって、出力パスをbin \ Debug \からbinに変更すると、エラーが削除されます。しかし、実際の問題は、「そもそもbin \ Debugが機能しないのはなぜですか?」です。デバッグまたはリリース構成をビルドするときに、適切なbinディレクトリにファイルを生成します。
Ellesedil、2015年

96

私はこれを数回経験しました。それはすぐに使えるので特にイライラします、そしてエラーメッセージは何が問題であるかについての手掛かりを保持しません。

これを修正するには、プロジェクトタイトル(この場合は "TestMvcApplication")を右クリックして、[ ビルド ]をクリックします。

これにより、実行前にコードが強制的にコンパイルされます。理由は聞かないでください。でも、これが100%解決策でした。


4
+1私も。そして私は多くのことを試しました、そして「もの」とは「野生の推測」を意味します。いい答えだ!
Bob Kaufman

私の場合、以前に構築されていないMVCサイトを指すIISがありました。どー。明らかに、それを構築することで修正されました。
エドガー

5
プロジェクトの名前を変更したときにもこのエラーが発生しましたが、global.asax.csが使用していた名前空間を変更するのを忘れていました。
高価な

1
あなたは紳士であり、サーであり、その上でビルドすることさえ考えていませんでした。ありがとう!
ベンブラック

2
私の場合、私のプロジェクトは何らかの理由でソリューション構成プロパティでビルドするように設定されていませんでした:i.imgur.com/kp73sGQ.png
Matthew Lock

24

構成マネージャーを使用してx86または標準プロジェクトの「すぐに使える」設定以外の何かの下で実行することを強いられると、IDEがWebプロジェクトのbinフォルダーの下に一連のサブディレクトリを作成することを発見しました。

これが始まったら、Cassiniサーバーが実行されていると、プロジェクトは正しく機能しません。

Webプロジェクトのプロパティ->ビルド設定に移動し、出力パスをbinに変更することで修正しました\

次に、再構築し、すべて正常に機能します。


ビンゴ、これは私のためにも働いたソリューションです。ありがとうございました!
moshjeier

私もうまくいきました-これはバグではありませんか?
Matt Wilko

そして、CheckBoxのビルドがチェックされているかどうかを確認します
Daniel Bi Novar

私があなたに10ビールを買っているのでオハイオhmuにいるなら、3時間以上の間さまざまな提案を見ていました
Andrew Afternoon-Delight Hayde

9

長いハードな調査の後、私はここで本当の問題に遭遇しました。

ホストされた環境にファイルをアップロードするために使用したFTPクライアントによって、アセンブリが破損しました。

FTPクライアントを変更しましたが、すべて正常に機能しています。


9

私も同じ問題を抱えていました。私のプロジェクトは、Webプロジェクトのプラットフォームターゲットがx86だったからです。私は64ビットマシンで実行していました。ソリューションの他のプロジェクトは64ビットに設定されました。

設定を確認するには、プロジェクトを右クリックして[プロパティ]を選択します。[ビルド]タブで、[プラットフォームターゲット]の値を確認します。

また、ソリューションのビルド構成([ビルド]メニュー> [構成マネージャー])を確認して、すべてのプロジェクトが同じプラットフォームでビルドされていることを確認してください。

どちらの場合も、必ずデバッグモードとリリースモードの両方の設定を確認してください。そうしないと、マシンで機能しますが、展開するときは機能しません。


Umbraco 7.1.6でこの問題を解決するには、この回答を以下の@brockstaylorからの回答と組み合わせる必要がありました
devinbost

9

上記の解決策をすべて試しましたが、うまくいきませんでした。<add assembly="*" />web.configに行を追加すると、修正されました。(適切な.NETフレームワークバージョンのmachine.configまたはroot web.configファイルに追加することもできます。私はそれを試しませんでした)ソリューションのMSサポートに感謝します。


これが私の問題でした。私が持っていた<assemblies><clear/>...、ネストされたIISアプリケーション内の親アプリケーションからアセンブリ参照を継承しないようにします。
Craig Celeste

私はこれを決して必要としませんでした...突然、私は自分の開発マシンの1つでこの問題に遭遇しました。それが始まった理由がわからないが、これがそれを解決した唯一のこと
Pascal

9

同じエラーのように見えました。私は多くのページから多くの提案を試みましたが、問題はウェブサイトが間違ったバージョンの.Netに設定されていることでした。

何度再コンパイルしたり、「構成の問題」と言ったりしても、.netのバージョンを確認する必要があるとは誰も言いませんでした。


8

プロジェクト/ソリューションの名前を変更すると、ITが発生します。Windowsエクスプローラーでプロジェクトのフォルダーに移動します(VSから出る)。グローバルファイルを見つけて開き(おそらく2つのファイルがあり、拡張子が ".asax.cs"でないファイルを開きます)、エラーの行を正しいパスで編集します。幸運を!


それは素晴らしい答えです、もっと賛成されるべきです-アプリケーションの名前変更が起こり、そのようなエラーは迷惑です!
Bartosz 2017

7

私が数日前にまったく同じ問題を経験しました-私の知る限り、それは32ビットのWebアプリケーションを実行する64ビットのIISの問題でした。本番サーバーを32ビットに変更したところ、この問題はなくなりました。


5

Webプロジェクトプロパティのデフォルトの名前空間がGlobal.asax.csの名前空間と同じであることを確認してください。デフォルトの名前空間をサブ名前空間に変更しましたが、変更してこの問題を修正しました。


4

完全を期すために、私は自分の問題が何であるか、そしてどのようにそれを解決したかを含めました:

私のように、web.configを介してhttphandlersがあり、global.asax.csからリダイレクトされている場合(多分Session_Start()にある)、私の場合のように、スタートアッププロジェクトが指す参照が定義されていない場合にこのエラーが発生します。 httphandlerが指しているターゲット!! (ただし、ビルドエラーは発生せず、実行時エラーのみが発生します)

そう:

  1. 外部項目がないかweb.configを再確認してください
  2. スタートアッププロジェクトに必要なすべての参照があることを再確認してください。

乾杯。


Ajax Toolkitコントロールを追加しましたが、DLLへの参照を追加していませんでした。#2をありがとう。
pixelmeow 2015年

4

これを経験したのは、MVCフレームワークがサーバーにインストールされていなかったときだけです。それは本当ですか?

Views \ Web.configのPagesセクションが欠落していることも原因である可能性があります。


確かに、それはホストされたサーバーであり、ASP .NET MVCによると正常に動作しています。
Riaan Engelbrecht

別の理由で同様のエラーが発生した別の人(Google叔父さん)を見つけました。回答へのリンクを追加しました。幸運を!
ダニエルエリオット

3

私は同じエラーがあり、あなたの解決策はどれも助けになりませんでした。私の問題は、単にプロジェクトのために選択した名前だったと思います。私はプロジェクトに「インターフェース」という名前を付けましたが、これは解析エラーが発生したときにロードできなかったことを示しています。

1行目:<%@ Application Codebehind = "Global.asax.cs" Inherits = " @interface .MvcApplication" Language = "C#"%>

なんらかの理由で「@」記号があった場所。「インターフェース」という言葉は他の何かのために予約されており、@記号が追加されていると思いますが、明らかに何かを壊しました。私はプロジェクトを削除し、問題なく別の名前で新しいプロジェクトを作成しました。


3

ここに別のものがあります:

  1. 私はlocalhost:12345を使用するWeb APIプロジェクトに取り組んでいました。
  2. 同じプロジェクトを含むソース管理から別のブランチをチェックアウトしました。
  3. ブランチでプロジェクトを実行したところ、エラーが発生しました。
  4. 「プロパティ> Web>プロジェクトURL」に行き、「仮想ディレクトリの作成」をクリックしました
  5. ダイアログが表示され、URLが別のディレクトリ(元のプロジェクトのディレクトリ)にマッピングされていることがわかりました。
  6. [OK]をクリックすると、仮想ディレクトリが再マップされました。
  7. エラーはなくなりました。

私はそれがどこかで誰かを助けることを願っています:)


それは私のために実際にそれをしました!
ra170 2015

2

私は解決すべき多くの問題とエラーを抱えていましたが、上記の回答のいくつかは役に立ちましたが、私にとってそれを機能させる最後のトリックは、プロジェクトに移動して、プロパティをクリックしました。

[パッケージ/公開Web]タブに移動し、構成が[リリース]に、[プラットフォーム]が[すべてのプラットフォーム]に設定されていることを確認します。

最後に、「展開するアイテム(すべての展開方法に適用)」が「このプロジェクトフォルダー内のすべてのファイル」に設定されていることを確認します

その後、私にとってはうまくいきました。


2

この問題は、根本的な原因と起こりうる直接的な原因とを混同しやすいため、複雑です。

私の場合、直接的な原因は、ソリューションがNuGet Package Restoreを使用するように構成されているが、サーバーがインターネットに接続されていないため、初めてビルドするときにNuGetが依存関係をダウンロードできなかったことです。

根本的な原因は、ソリューションが依存関係を正しく解決できないことにあると私は信じています。パス構成が正しくないか、アセンブリのバージョンが間違っているか、アセンブリが競合しているか、部分的な展開である可能性があります。しかし、すべての場合において、エラーは単に、global.asaxで指定されたタイプを構築できないため、それが見つからないことを示しています。


2

ていることを確認してください内の名前空間Global.asaxのファイルと一致することでGlobal.cs、ファイルすなわち

Global.asax: Some.Website.Webapplication

Global.cs:(Some.Website「WebApplication」を除く)


2

上記の答えのほとんどを試しましたが、うまくいきませんでした。何らかの理由でVSを閉じて再び開くだけで問題が解決しました。


2

IISでファイルを含んでいた物理フォルダーをアプリケーションに変換すると、問題は解決しました。右クリック>アプリケーションに変換。


1

私にとっては、一時的にファイルをプロジェクトから除外していたからです。私はそれをプロジェクトの後ろに含めただけで機能しました。


私は閉じてまで、鉱山も、ソリューションファイルを削除いくつかのファイルがあったと私は実現しなかった再オープンのVisual Studio
フィオナ- myaccessible.website

1

私の場合、System.Web.MVCの参照がプロジェクトにありませんでした。しかし、参照を追加した後の問題は同じだったので、Binフォルダーのプロパティを確認したところ、読み取り専用でした。書き込み可能にした直後は、すべて正常に動作しています。


1

アプリケーションを仮想ディレクトリとしてデプロイしたためにエラーが発生し、「タイプをロードできません」というパーサーエラーが発生しました。その後、アプリケーションをWebサイトとしてデプロイしましたが、再度そのエラーは発生しませんでした。


0

他のどの回答も私にとってこのエラーを解決しませんでした。
私はうまくいった解決策を見つけました、同じ状況の人々のためにそれを提案します:

  1. Visual Studioを閉じる
  2. Projects \ yourProject \ yourProjectに移動します
  3. Web.Debug.configおよびWeb.Release.configの名前を変更する
  4. アプリケーションを再構築して実行する

これらを削除しました...そして今、彼らは再び現れません。
FiringSquadWitness 2014年

0

私が本当にそれを引き起こしている原因を突き止めることはできませんでした。私はどこかでいくつかのファイルが欠落していたに違いないと思います。新しいサーバーに公開した後、エラーが発生しました。結局、私は作業サイトからサイトをコピーしました。その後、サイトは機能し、新しいサーバーにさらに公開されました。


0

次の手順を実行します:

  1. ビルド
  2. 構成マネージャー
  3. AnyCPUプロジェクトを置く
  4. 生成に戻る
  5. 準備ができたら、この後、同じ手順に従ってx86またはx64に渡します。

0

私には、32ビット環境で実行する必要のあるDLLがプロジェクトに含まれていました。

サーバーは32ビットモードでWebサイトを実行するように構成されましたが、localhostフォルダーが32ビットモードで実行するように指定されていなかったため、64ビットマシンでアプリケーションを実行できませんでした。


0

同様の問題が発生しました。

その理由は、file.aspx.cを変更していて、完全に再構築する必要があったためです。その後、すべてが機能しました。


0

私の問題は、すでにweb.configファイルがあったフォルダーのサブフォルダーにASPX Webアプリケーションを作成しようとしていたことでした。

そこで、Visual Studioで親フォルダーをWebサイト([開く]> [Webサイト])として開きました。解析/読み込みの問題のない新しいアイテムASPXページを追加できました。


0

私にとって、問題はWebサイト内の特定の(長い)リンクでのみ発生し、URLの長さ制限が260のデフォルト構成を持つURLScanまで追跡されました。


0

同じ問題が発生しました。してみてください:

プロジェクトを右クリックして[クリーン]を選択し、もう一度右クリックして[リビルド]を選択してプロジェクトを実行し、機能するかどうかを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.