我知道这个主题已经在几篇文章中进行了讨论,但没有一个解决方案对我有帮助。
我有这个动作:
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
。
我不知道如何处理这个错误,你能给我一些消息吗?
答案 0 :(得分:6)
我找到了一个非常简单的教程如何解决我对rotativa的问题,对于那些有相同问题的人,请按照本教程进行操作:
Sample process to generate PDF with Rotativa in Asp.Net MVC
基于本教程,我们需要做的就是:
上传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
You can refer above path on your local with your own specified path to find it.
Upload them to "Rotativa" folder.
答案 1 :(得分:3)
对我有用的是,我在Rotativa文件夹中缺少文件,
help-wkhtmltoimage.txt
help-wkhtmltopdf.txt
msvcp120.dll
msvcp140.dll
msvcr120.dll
vcruntime140.dll
wkhtmltoimage.exe
wkhtmltopdf.exe
wkhtmltox.dll
一旦我把这些文件放入,它就像一个魅力
答案 2 :(得分:3)
我遇到了同样的问题:Rotativa在本地工作,但不在我们的开发服务器上工作。
对我来说有用的是Lucian Bumb和Ray Levron的答案。
首先我去了:https://wkhtmltopdf.org/downloads.html并下载了64位版本。
我运行了安装程序,找到了bin文件夹,并将这三个文件复制到我项目的“Rotativa”文件夹中:
然后我在我的电脑上发现这四个.dll文件并运行搜索,并将它们复制到我项目的“Rotativa”文件夹中:
确保所有文件都已添加到项目和源代码控制中,在本地测试,并在dev上签入以构建。
答案 3 :(得分:0)
要解决此问题:
在下面打开Visual Studio 2013的C ++可再发行组件包可下载链接: https://www.microsoft.com/en-GB/download/details.aspx?id=40784用于Visual Studio 2013的可再发行程序包
单击“下载”,然后选择文件(vcredist_x86.exe),即使您正在运行X64位服务器版本。
安装文件。
这将添加上面提到的丢失的dll文件,现在问题已解决。