ファイルまたはアセンブリ 'System.Web.Mvc'を読み込めませんでした


200

新しいASP.NET MVC Webアプリケーションは開発ワークステーションで動作しますが、Webサーバーでは実行されません...


「/」アプリケーションでのサーバーエラー。


構成エラー

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

パーサーエラーメッセージ:ファイルまたはアセンブリ 'System.Web.Mvc、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

ソースエラー:

Line 44:         <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45:         <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46:         <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47:         <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48:         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

ソースファイル: C:\ inetpub \ www.example.org \ web.config 行: 46

アセンブリロードトレース:次の情報は、アセンブリ 'System.Web.Mvc、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'をロードできなかった理由を特定するのに役立ちます。

WRN:アセンブリバインディングログがオフになっています。
アセンブリバインドエラーのログを有効にするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)を1に設定します。
注:アセンブリバインドの失敗のログ記録に関連するパフォーマンスの低下があります。
この機能をオフにするには、レジストリ値[HKLM \ Software \ Microsoft \ Fusion!EnableLog]を削除します。

バージョン情報: Microsoft .NET Frameworkバージョン:2.0.50727.3053; ASP.NETバージョン:2.0.50727.3053


AspNetMVCBeta-setup.msiをサーバーにインストールする必要がありますか?または、サーバー用の別のインストーラーはありますか?

ここに画像の説明を入力してください

回答:


215

私はこれに対処するブログ投稿を書いたところです。サーバーにASP.NET MVCをインストールするか、こちら手順に従ってください


編集:(jcolebrandにより)私はこのリンクをたどりましたが、以下のビクター と同じ問題があったため、これらも追加することをお勧めします:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

6
注:MVC4(現在ベータ版)がインストールされている場合、これらのDLLのv1.0を取得し、System.Web.Helpersも取得する必要があります(少なくとも私は必要でした)。
Tracker1

1
-1リンク先の投稿は、発行メカニズムを介してMicrosoft.Web.InfrastructureをWebサーバーに取得する方法を説明していません。サーバーに直接インストールする必要がある、一種のsux。
Mark Rogers、

1
ここで説明したようにVisual Studioの2010年に、これは非常に簡単になりました:britishdeveloper.co.uk/2011/06/...
ダニエル・チューリップ

またはここでは、Web配置の使用していない場合はbritishdeveloper.co.uk/2011/05/...を
イェルーンK

私はbinフォルダーをホース処理してから再度発行する必要がありました。つまり、Deploy Packageを使用していない場合です。
Robert Koch

41

sgriffinusaと同じ問題が発生しました。参考文献に加えて、フィルの記事は次のことを示唆しています:http : //www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx。私はこれらを追加しました:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

Godaddy Deploymentは完全に機能しました。カスタムエラーをオフにし、参照を追加してエラーを修正します。それはあなたを正しい方向に導くはずです。


26

アセンブリがGACにインストールされるため、WebサーバーにMVCを直接インストールすることも1つのオプションです。アセンブリをビン展開することもできます。これにより、最終リリースが利用可能になるまで、サーバーにプレリリースアセンブリがないようにすることができます。

Phil Haackが数日前にアプリと一緒にMVCをデプロイする方法についての良い記事を投稿したので、直接インストールする必要はありません:

http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx


25

GoDaddy共有ホスティングにMVC3 Razor Webアプリケーションをデプロイしようとすると、同じ問題が発生しました。参照する必要があるいくつかの追加の.dllがあります。詳細はこちら:http : //paulmason.biz/?p=108

基本的に、@ Haackedの投稿にリストされているものに加えて、以下への参照を追加し、説明に従ってローカルにデプロイするように設定する必要があります。

  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages.Deployment
  • System.Web.WebPages.Razor

おかげで、手動で参照を追加してローカルに展開した後、MVC3の問題が解決しました!
Stefanvds 2011

ここも同じです。これらの追加DLLを追加するための良いガイダンス。ありがとう!
Mike L

ここも同じです。GoDaddyではなく、私の会社のサーバー上にあるので、これは単なる一般的なケースでなければなりません。
TJKjaer '26 / 07/26

13

VS2010では、ソリューションエクスプローラーでプロジェクトを右クリックし、[展開可能な依存関係の追加]を選択します。次に、次のダイアログでMVC関連のチェックボックスをオンにします。

これにより、プロジェクトに「_bin_deployableAssemblies」フォルダーが作成され、他の回答で言及されているすべての.dllファイルが含まれます。展開パッケージを作成するときに、これらはbinフォルダーにコピーされると思います。


9

簡単な修正。VS2010でMVCプロジェクトを右クリックし、[展開可能な依存関係の追加...]を選択して、必要なオプションを選択し、[OK]をクリックします


8

迅速でシンプルなソリューション:すばやく Microsoft.AspNet.Mvc -Version 5.2.3でこの問題に直面し、これらすべてのスレッドを調べた後、最も簡単な解決策を見つけました。

手順に従ってください:

  1. プロジェクトのVisual StudioでNuGetパッケージマネージャーを開く
  2. Microsoft.AspNet.Mvcを検索します
  3. 見つかったら、アクションを「アンインストール」に変更し、それをアンインストールします
  4. 完了したら、もう一度インストールして今すぐ試してください

これにより、参照に関するすべての問題が自動的に修正されます。下の画像を参照してください。

ここに画像の説明を入力してください


7

同じ問題があり、彼らが言ったすべてのアセンブリを追加しましたが、それでも同じエラーが発生しました。

特定のバージョン」= False にする必要があることがわかりました。

特定のバージョンはfalseである必要があります。


それが有効でない場合は別の方法としては、「真」に「ローカルコピー」を切り替える必要があります
AStopher

6

これを使用するクラスライブラリを作成しているので、追加します。

私にとってはここです...

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies


3

ホスティングプロバイダーを使用しておらず、インストールするサーバーにアクセスできる場合...次にMVC 3更新ツールをインストールします。これを実行すると、Windows 2003サーバー/ IIS6マシンでの問題の時間を節約できます。、私はこのページでコメントしました Nuget.Core.dllバージョン番号の不一致


3

Haackの投稿に加えて、Hanselmanにも同様の投稿があります。 MVCがインストールされていないWindowsサーバーへのRazorを使用したASP.NET MVC 3のBIN Delploying

私にとって、私のWebサイトのプロジェクト参照には欠落していたすべてのdllが含まれていなかったため、「ローカルのコピー= true」ソリューションは不十分でした。スコットが彼の投稿で言及しているように、開発ボックスの次のフォルダーから追加のdllを取得する必要もありました:C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET Web Pages \ v1.0 \ Assemblies。エラーメッセージにより、不足しているdllが通知されました(System.Web.Infrastructure、System.Web.Razorなど)。機能するまで、不足している各dllを1つずつ追加し続けました。


3

Visual Studio 2015で修正するために、「Update-Package –reinstall Microsoft.AspNet.Mvc」を実行しました。


3

重要な考慮事項はweb.configファイルです。一部のパッケージはバインディングリダイレクトを壊滅させて大混乱を引き起こす可能性があります(悪意のあるパッケージは社内パッケージにあり、パッケージからweb.configを削除しなかったか、パッケージ内のweb.configを確認していませんでした)バインディングリダイレクトがありません。たとえば、重複した不正なノードを削除することで、これは解決されます

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>


                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>


                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.3.2.0" newVersion="3.3.2.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

8行目から24行目を削除すると、ビルドが修正されます。


2

また、Viewsフォルダー内のweb.configでアセンブリのバージョンを確認し、一致することを確認してください。その場所に2つ目のweb.configがあることを忘れることがあります。



2

プロジェクトを別のソリューションに移動した後、一連のアセンブリファイルで同じ問題が発生しました。

私にとって、web.configファイルはこのアセンブリを追加しようとしていました:

<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

プロジェクトの参照はバージョンを指していると考えました(参照を3.0.0.0クリックして、プロパティの下部までスクロールします)。したがって、web.configファイルの参照バージョンを変更しただけです。

これが単なるバグかどうかはわかりません。他のすべての参照を追加する際の問題は、参照が構成ファイルに表示されていたが、実際にはプロジェクト(ソリューションエクスプローラー内)ではまったく参照されておらず、必要なファイルが残りのプロジェクトファイルと一緒にコピーされなかったことです。おそらく存在しないため"copy local = true"

現在、これらのアセンブリを追加可能なアセンブリで見つけることができませんでした(参照を右クリックして、アセンブリまたは拡張機能から追加しようとしたため)。代わりに、必要なすべてのアセンブリと参照を追加する新しいMVCソリューションを作成し、ソリューションエクスプローラーの新しいプロジェクト参照の下でそれらを見つけ、参照のプロパティウィンドウでそれらのパスを見つけました。

次に、必要なライブラリを他のプロジェクトにコピーして参照しました。


1

すべてを試し、それでも失敗した後、これが私の解決策でした:私はVisual StudioでMVCバージョンを最後に更新するときにエラーがあったのを覚えていたので、別のVisual Studio(別のコンピューター)からプロジェクトを実行し、その後dllをアップロードして機能しました。多分それは誰かを助けるでしょう...


0

.netプロジェクトでJenkinsを使用していて、MVC 4参照で問題が発生しました。

最後に、レジストリをベースにした.Netリファレンス検索エンジン機能を使用して問題を解決しました。

「HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework \ v2.0.50727 \ AssemblyFoldersEx」

たとえば、サブキーを作成して、デフォルトのキーを「c:\ myreferenceedir」に設定できます。

MVCバージョンとASP.net Webページで私を救いました。

「参照の追加ダイアログ」への参照の追加に役立ちます

http://dhakshinamoorthy.wordpress.com/2011/12/04/how-to-register-your-net-assembly-in-gac-and-make-it-show-in-add-reference-dialog/


0

他の人が述べたように、これらの参照をCopy Localsetを使用してビジュアルスタジオに追加しtrueます。(私も追加しなければなりませんでしたSystem.Web.Webpages

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages

0

NuGetパッケージの管理を使用して「Microsoft ASP.NET Razor」を追加しました。

Add Referencesを使用すると、何らかの理由で、System.Web.Helpers 1.0.0と2.0.0だけがありましたが、3.0.0はありませんでした。

別のオプションは、私から機能しましたが、System.Web.MvcおよびSystem.Web.Httpへの参照を削除し、csprojファイルのパッケージの場所にそれらを参照して再度追加しました(プロジェクトを最も簡単に編集できます)テキストエディター):

<Reference Include="System.Web.Http">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>

<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.