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.dll名为 Rotativa 的根目录中的文件夹,其中的文件名为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 在本地为我工作,但不在我们的开发服务器上。

对我有用的是 Lucian Bumb 和 Ray Levron 的答案的结合。

首先我去了:https ://wkhtmltopdf.org/downloads.html并下载了 64 位版本。

我运行安装程序,找到 bin 文件夹,并将这三个文件复制到我项目的“Rotativa”文件夹中:

  • wkhtmltoimage.exe
  • wkhtmltopdf.exe
  • wkhtmltox.dll

然后我在运行搜索的 PC 上找到了这四个 .dll 文件,并将它们复制到我的项目的“Rotativa”文件夹中:

  • msvcp120.dll
  • msvcp140.dll
  • msvcr120.dll
  • vcruntime140.dll

确保所有文件都添加到项目和源代码控制中,在本地进行了测试,并签入了在 dev 上的构建。

于 2018-04-27T16:28:08.377 回答
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 回答
0

要解决问题:

  1. 打开 Visual Studio 2013 的 C++ 可再发行包下载链接: https ://www.microsoft.com/en-GB/download/details.aspx?id= 40784 Visual Studio 2013可再发行包

  2. 即使您运行的是 X64 位服务器版本,也请单击下载并选择文件 (vcredist_x86.exe)。

  3. 安装文件。

这将添加上面提到的丢失的dll文件,现在问题已经解决了。

于 2018-07-23T14:56:48.970 回答