8

このトピックがいくつかの記事で議論されていることは知っていますが、解決策はどれも役に立ちません。

私はこのアクションを持っています:

   public ActionResult DownloadViewPDF(string userId)
        {
            var model = db.MyCvs.FirstOrDefault(u => u.UserId == userId);

            if (model != null)
                return new Rotativa.ViewAsPdf("ViewUserCv", model) { FileName = model.FirstName + model.LastName + "_CV.pdf" };
            return Content("there is no Cv to download");
        }

上記のアクションを使用して、ビューを pdf としてダウンロードしていますが、コンピューターですべてが期待どおりに機能しています。

プロジェクトをサーバーにデプロイした後、このアクションが機能せず、エラーが返されます:

現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。

私はVisual Studio Community 2015を使用しています。サーバー上には、Rotativa.dllRotativa という名前のルートディレクトリに と という名前のファイルがあるフォルダーもありますwkhtmltopdf.exe

このエラーの処理方法がわかりません。いくつかの提案をいただけますか?

4

4 に答える 4

9

rotativa で問題を解決するための非常に簡単なチュートリアルを見つけました。同じ問題がある場合は、このチュートリアルに従ってください。

Asp.Net MVC で Rotativa を使用して PDF を生成するサンプル プロセス

このチュートリアルに基づいて、行う必要があるのは次のことだけです。

dll をアップロードします。

  • msvcp120.dll
  • msvcr120.dll

Rotativa には「Visual C++ Redistributable for Visual Studio」のコンポーネントが必要なためです。

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\X64\msvcp120.dll

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\X64\msvcr120.dll

ローカルで上記のパスを参照して、独自に指定したパスを見つけて見つけることができます。それらを「Rotativa」フォルダにアップロードします。

于 2016-02-10T17:43:22.860 に答える
5

私にとってうまくいったのは、 Rotativa フォルダーにファイルが見つからなかったということでした。

help-wkhtmltoimage.txt
help-wkhtmltopdf.txt
msvcp120.dll
msvcp140.dll
msvcr120.dll
vcruntime140.dll
wkhtmltoimage.exe
wkhtmltopdf.exe
wkhtmltox.dll

それらのファイルを入れると、それは魅力のように機能しました

于 2018-02-09T18:00:50.787 に答える