Rotativa - ViewAspdf 在服务器上不起作用
本文关键字:不起作用 服务器 ViewAspdf Rotativa | 更新日期: 2023-09-27 18:31:57
我知道这个话题已经在几篇文章中讨论过,但没有一个解决方案对我有帮助。
我有这个动作:
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格式的视图,并且计算机上的一切都按预期工作。
在服务器上部署项目后,此操作不起作用,返回错误:
在执行 当前网络请求。有关原产地和位置的信息 可以使用异常堆栈跟踪来识别异常 下面。
我正在使用Visual Studio Community 2015。在服务器上,我有Rotativa.dll
,还有名为 Rotativa 的根目录中的文件夹,其中包含名为 wkhtmltopdf.exe
的文件。
我不知道如何处理这个错误,你能给我一些建议吗?
我找到了一个非常简单的教程,如何解决我的 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"文件夹。
对我有用的是,我在 Rotativa 文件夹中丢失了文件,
help-wkhtmltoimage.txt
help-wkhtmltopdf.txt
msvcp120.dll
msvcp140.dll
msvcr120.dll
vcruntime140.dll
wkhtmltoimage.exe
wkhtmltopdf.exe
wkhtmltox.dll
一旦我把这些文件放进去,它就像一个魅力
我遇到了同样的问题: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
确保所有文件都已添加到项目和源代码管理中,在本地进行了测试,并签入了开发生成。
要解决此问题:
打开下面的 Visual Studio 2013 可下载C++可再发行组件包链接:https://www.microsoft.com/en-GB/download/details.aspx?id=40784 Visual Studio 2013 的可再发行组件包
单击下载并选择文件 (vcredist_x86.exe),即使您运行的是 X64 位服务器版本。
安装该文件。
这将添加上面提到的丢失的DLL文件,现在问题已解决。