エラーが出ます
タイプMvcApplicationをロードできませんでした
私のウェブサイトを実行しようとしたとき。
それを修正するには?
エラーが出ます
タイプMvcApplicationをロードできませんでした
私のウェブサイトを実行しようとしたとき。
それを修正するには?
回答:
それが聞こえるかもしれないほど愚かで、すべてを試してみましたが、うまくいきませんでした、そしてそれが再び動くことを確認するためにVS2012を再起動しました。
-私にとっての修正は、ビルドタブで出力パスを変更することでした。出力パスをに変更するbin\
と、エラーはなくなりました。
-別の修正として、起動プロジェクトセットが間違っている可能性があります。
私は同じエラーが発生し、ここや他の場所で言及されているすべてを実行したにもかかわらず、何も機能しませんでした。別の名前のプロジェクトの以前のバージョンからglobal.asax.csのソースコードをコピーしたことがわかりました。だからそうだったnamespace Test
はずnamespace Test.WebUI
です。もちろん愚かな間違いで、これを書くのは少し恥ずかしいです!しかし、他の誰かからの同様のエラーが彼にこの些細な側面もチェックするように導くことを期待して書いてください。
ソリューションを手動でビルドするだけです。
ローカルIISを使用している場合は、IISマネージャーでWebサイト登録を削除してから、手動で再作成してください。
【質問から抜粋】
「MvcApplicationタイプをロードできませんでした」というエラーが発生した場合は、プロジェクトの出力パスを調べて、「bin \」に設定されていることを確認してください。問題は、ファイルがデフォルトの場所にない場合、AspNetCompilerがファイルを見つけられないことです。
出力フォルダーを変更するもう1つの副作用は、コードをデバッグできなくなり、アセンブリ情報が見つからないというメッセージが表示されることです。
bin
にbin\Debug
してbin\Release
ますが、古いファイルは私の中にまだあったbin
、私はすべての問題を見ていないので、フォルダ。もちろん、クリーンチェックアウトを行ってビルドした場合、これらのファイルは存在しないので爆破します。
私の解決策:問題を作成したため!Global.asax.csの名前空間を変更しました
Global.asaxのInherits属性値も変更する必要があります。
global.asaxで提供されるコードビハインド情報を確認してください。コードビハインドでクラスを正しく指す必要があります。
global.asaxのサンプル:
<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>
背後にあるサンプルコード:
namespace MyApplicationNamespace
{
public class MyMvcApplication : System.Web.HttpApplication
{
protected void Application_Start( )
{
AreaRegistration.RegisterAllAreas( );
FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
RouteConfig.RegisterRoutes( RouteTable.Routes );
BundleConfig.RegisterBundles( BundleTable.Bundles );
}
}
}
これは、IIS Expressが同じポート割り当てを使用して古い/異なるプロジェクトをホストしている/ホストしている場合、Visual Studioでプロジェクトを実行しているときにも発生する可能性があります。
これを修正するには、このプロジェクトのポート割り当てを変更するか、IIS Expressを閉じます。
私にとっての解決策は、Mvcプロジェクトを右クリックし、プロパティを選択して、[仮想ディレクトリの作成]をクリックすることでした。
プロジェクトが間違ったフォルダーにマップされたことを示すメッセージボックスがポップアップしました(別のTFSプロジェクトのフォルダーが表示されました。正しいフォルダーにマップするオプションが表示されました。
私はすでに持っていました bin/
ビルドタブにありました。プロジェクトの別のコピーからglobal.asaxを取得しましたが、うまくいきませんでした。
最終的に私のために働いた解決策は、bin/
フォルダーを削除して、同じ名前で新しい空のフォルダーを作成することでした。
これについてはすでに多くの解決策があることは知っていますが、何がそれを解決したのかを述べようと思います。
私の構成はデバッグに設定されました。それをリリースに変更するのは私にとってはトリックでした。
コンパイル時のエラーがいくつかあるにもかかわらずプロジェクトを実行していたため、このエラーが発生しました。これは気づかなかった。
サイトのbinフォルダーの内容を削除します(これにはファイルエクスプローラーを使用します)。再構築。
私はこれに陥りました。私は以前に与えられたすべての可能な解決策を読んでテストしました。ビルドパスの確認、IISとVS2015のビルド、再ビルド、クリーンアップ、再起動、すべてのnugetパッケージの再インストール、1つずつのコンパイルなど...
VSがシステムフォルダーにASP一時ファイルを保持していることを突然思い出しました...結局、それを悪化させることはないので、試してみる必要があると思います。だから私は空にした:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
そして、すべてが再び機能しています...この問題に考えられるさまざまな解決策があることは奇妙です...
これは過去10年間に何度も見たことがあります。同じエラーが発生する多くの問題があります。
1つの原因は、ファイルの名前の変更です。.cshtmlファイルを使用している場合は、それらのファイル内およびViews \ web.configファイル内のすべての名前空間を確認してください。Webフォームの場合、Default.aspxの名前を変更します(関連する.csおよびデザイナファイルの名前は自動的に変更されます)。分離コードは変更されますが、マークアップのInherits行は変更されません。手動で変更してください。デザイナーページを再確認してください。時々(VS2005-8?)デザイナーページに名前空間の変更が反映されない場合があります。2010年以降、これを見たことはありません。
もう1つの問題は、すべてがVSまたはローカルPCで機能するが、展開時に機能しない場合です。これは、展開環境が同じように構成されていないことが原因である可能性があります。たとえば、アプリケーションフォルダーの下の仮想ディレクトリにコードを配置するとエラーが発生しますが、新しいアプリケーションフォルダーを作成してそこにすべてのファイルを配置すると、エラーは発生しません。私はこれを理解していません。新しい子/仮想フォルダーに同じアクセス許可が設定されているため(または私はそう思います)、アプリケーションプールは特定のアプリケーションフォルダー内のすべてに対して同じように機能するはずです。
私の場合、IISサーバー上の他のアセンブリから更新されるアセンブリを含むbinフォルダーもありました。繰り返しますが、これらが別のアプリケーションフォルダーで実行されることを確認すると、成功しました。
HTH
Visual Studioの開発環境でこの苛立たしいエラーが発生しましたが、その理由は非常に愚かでした。つまり、ソリューションに複数のWebプロジェクト/サイトがある場合:Webサイトにアクセスしようとしているポートが、[プロジェクトのプロパティ]-> [Web]で構成されているものと同じであることを確認してください。
私の場合、ソリューションのプロジェクトに別のポートが割り当てられているときに、別のポートを使用して(ブラウザーで)Webサイトにアクセスしていたため、エラーが発生しました。もう少し詳しく説明すると、ソリューションに2つのWebサイトプロジェクトがありました。そのため、私はWebsite1を構築していましたが、locahost:8101を使用してWebサイトにアクセスしようとしていました。
ようやく問題に気付いたので、@ StingyJackのコメントも同様の問題を扱っていることがわかります。
global.asax.csの名前空間がWebアプリケーションの名前空間と一致していることを確認してください
うまくいったのは、Visual Studioを再起動することでした。
手動で再構築し、クリーンアップと再構築を実行して、binフォルダーをすべて削除しても機能しませんでした。出力パスはすでにbinに設定されています\
名前空間を変更した場合は、右クリックしてリファクタリングしてください。
名前空間を変更すると、これが頻繁に発生する可能性があります。名前空間の名前を以前と同じように返します。これで機能するはずです。
状況によっては、作成した新しいプロジェクトがデフォルトでビルドするように設定されていない場合があります。ソリューションを右クリックした場合はProperties
、を選択し、Configuration Properties
| を選択します。Configuration
左側のノードをクリックし、プロジェクトの下にチェックマークがあることを確認しますBuild
列の。通常の状況では、これはデフォルトで発生することがわかりました。他の状況(私はたまたまこの動作を示すいくらか複雑なWeb API / Xamarin AndroidおよびiOS / Mvc 5ソリューションを持っています)には、チェックマークがありません。
これは他の回答に関連しています-Webプロジェクトのアセンブリが利用できない場合、このエラーが発生します。しかし、これは一般的なシナリオである可能性があります。特に、実際にソリューションをコンパイルしているためです。プロジェクトはビルドされません。
私のバージョン管理がbinフォルダーを無視するように設定されているため、このエラーが発生しました。非常に愚かですが、おそらく他の誰かが恩恵を受けるでしょう。
私はこの非常に問題に遭遇し、あらゆる種類の答えが見られますが、何も受け入れられていません。私は少し後に、実行する前に単にウェブサイトを構築するだけで問題が解決したことを発見しました。