2

MVC アプリケーション (Visual Studio を使用して NuGet パッケージをダウンロード) で Rotativa を使用してビューを PDF に出力しようとしていますが、メソッドが呼び出されるたびに「ファイルまたはアセンブリを読み込めませんでした」というエラーが表示されます。オンラインで解決策を探してみましたが、適切な解決策が見つかりません。以下は、エラーの完全なスタック トレースです。

「/」アプリケーションでサーバー エラーが発生しました。

ファイルまたはアセンブリ 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.IO.FileLoadException: ファイルまたはアセンブリ 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

ソース エラー:

48 行目: "ViewOrder"、49 行目: new { id = id }) { FileName = "Order.pdf" }; 50行目: } 51行目: 52行目: [HttpGet]

ソース ファイル: c:\Users\André\Documents\WAD\Assignment1\7-10-2015\Controllers\OrdersController.cs 行: 50

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

=== バインド前の状態情報 === LOG: DisplayName = System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (完全指定) LOG: Appbase = file:///C: /Users/André/Documents/WAD/Assignment1/7-10-2015/ LOG: Initial PrivatePath = C:\Users\André\Documents\WAD\Assignment1\7-10-2015\bin アセンブリの呼び出し: Rotativa、Version=1.0 .0.0、カルチャ = ニュートラル、PublicKeyToken = null。=== ログ: このバインドは、デフォルトのロード コンテキストで開始されます。ログ: アプリケーション構成ファイルの使用: C:\Users\André\Documents\WAD\Assignment1\7-10-2015\web.config ログ: ホスト構成ファイルの使用: C:\Users\André\Documents\IISExpress\config\aspnet .config ログ: C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config のマシン構成ファイルを使用しています。ログ: ポリシー後の参照: System.Web.Mvc、バージョン = 3.0.0.1、Culture=neutral, PublicKeyToken=31bf3856ad364e35 ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/André/AppData/Local/Temp/Temporary ASP.NET Files/root/66e12f45/a5c0a521/System.Web.Mvc. DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/André/AppData/Local/Temp/Temporary ASP.NET Files/root/66e12f45/a5c0a521/System.Web.Mvc/System.Web.Mvc.DLL . ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/André/Documents/WAD/Assignment1/7-10-2015/bin/System.Web.Mvc.DLL。WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。新しい URL ファイルのダウンロードを試みています:///C:/Users/André/AppData/Local/Temp/Temporary ASP.NET Files/root/66e12f45/a5c0a521/System.Web.Mvc/System.Web.Mvc.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/André/Documents/WAD/Assignment1/7-10-2015/bin/System.Web.Mvc.DLL。WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。新しい URL ファイルのダウンロードを試みています:///C:/Users/André/AppData/Local/Temp/Temporary ASP.NET Files/root/66e12f45/a5c0a521/System.Web.Mvc/System.Web.Mvc.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/André/Documents/WAD/Assignment1/7-10-2015/bin/System.Web.Mvc.DLL。WRN: アセンブリ名を比較すると、不一致が発生しました: メジャー バージョン ERR: アセンブリのセットアップを完了できませんでした (hr = 0x80131040)。プローブが終了しました。

スタックトレース:

[FileLoadException: ファイルまたはアセンブリ 'System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)]
_7_10_2015.Controllers.OrdersController.PrintOrder(Int32 id) in c:\Users\André\Documents\WAD\Assignment1\7-10-2015\Controllers\OrdersController.cs:50 lambda_method(Closure , ControllerBase 、 Object[] ) +161
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase コントローラー、Object[] パラメーター) +59
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext、IDictionary 2 パラメーター) +602 parameters) +435
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary

System.Web.Mvc.Async.ActionInvocation.InvokeSynchronousActionMethod() +76 System.Web.Mvc.Async.AsyncControllerActionInvoker.b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +36
System.Web.Mvc.Async.WrappedAsyncResult 1.End() + 136 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +102 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +49 System.Web.Mvc.Async.AsyncInvocationWithFilters.b__3c( ) +117 System.Web.Mvc.Async.<>c__DisplayClass45.b__3e() +323 System.Web.Mvc.Async.<>c__DisplayClass30.b__2f(IAsyncResult asyncResult) +44 System.Web.Mvc.Async.WrappedAsyncResult 1. End() +1362.CallEndDelegate(IAsyncResult asyncResult) +73
System.Web.Mvc.Async.WrappedAsyncResultBase




1.CallEndDelegate(IAsyncResult asyncResult) +47
System.Web.Mvc.Async.WrappedAsyncResultBase

System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +102
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +50
System.Web.Mvc.Async.<>c__DisplayClass28.b__19 () +72 System.Web.Mvc.Async.<>c__DisplayClass1e.b__1b(IAsyncResult asyncResult) +185
System.Web.Mvc.Async.WrappedAsyncResult 1.End() +133 System.Web.Mvc.Async.AsyncResultWrapper.End (IAsyncResult asyncResult、Object タグ) +56 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +40 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult、ExecuteCoreState innerState) +34 System.Web.Mvc. Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.WrappedAsyncResultBase




1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +133
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +56
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +37
System.Web .Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +44 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult、コントローラー コントローラー) +39
System.Web.Mvc.Async.WrappedAsyncVoid 1.End() +133 System.Web. Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +56 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +37 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) + 391.CallEndDelegate(IAsyncResult asyncResult) +62
System.Web.Mvc.Async.WrappedAsyncResultBase



System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.MvcHandler.b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +39
System.Web.Mvc.Async .WrappedAsyncVoid 1.End() +133 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +56 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Object タグ) +37 システム.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +40 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 結果) +381.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase




System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9721605 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、Boolean& completedSynchronously) +155

Rotativa の ActionAsPDF を使用したコード サンプル:

[HttpGet]
public ActionResult ViewOrder(int id)
{
    Order GetOrder = new CartBL().GetOrderById(id);
    return View(GetOrder);
}

[HttpGet]
public ActionResult PrintOrder(int id)
{
    return new ActionAsPdf(
         "ViewOrder",
         new { id = id }) { FileName = "Order.pdf" };
}

誰かがこれを修正するのを手伝ってくれて本当に感謝しています。

4

3 に答える 3

1

System.Web.Mvc, Version=3.0.0.1 がシステムにインストールされていないか、ワーカー プロセスがアクセスできない場所にインストールされています。

おそらくあなたがする必要があるのは、ソリューションで参照を見つけてそれをコピーローカルとしてマークすることです

ここに画像の説明を入力

この問題を解決する方法は他にもありますが、完全を期すためにここで概説します。

Fusion Binding のログがオンになっているのは良いことですが、使用していません。バインダーがアセンブリを探しに行った場所がわかります。バインダーがアセンブリを探した各場所を調べます。

それは実際にそれらの場所のいずれかにありますか?その後、アプリ プールを実行しているアカウントは、ファイル/ディレクトリにアクセスできません。これは権限の問題です。修正してください。

それらの場所のいずれかにありませんか?その後、そのマシンにはインストールされません。アセンブリが msi/setup.exe を使用してインストールされている場合は、それをターゲット システムで実行します。そうでない場合は、この質問の冒頭で述べたように、参照をコピーローカルにしてください。または、自分で手動でコピーします。

于 2016-01-08T15:58:53.673 に答える