仅在服务器上找不到Rotativa文件

时间:2015-02-10 14:25:16

标签: asp.net-mvc-4 rotativa

我正在使用Rotativa ActionasPDF()从我的MVC4项目中的视图生成pdf。它在我的本地实例上完美运行,但我只是将整个解决方案复制到我的服务器上,但它不起作用。我收到错误“系统找不到指定的文件”,但我不确定它在说什么文件。我假设它是在谈论Rotativa dll,但我在服务器上也有生成的Rotativa文件夹。该解决方案与我的本地副本完全相同。我的网站托管在IIS 8,Windows 2012服务器上。研究告诉我,我可能有一些文件夹的权限问题,但我不确定它们会是哪些。我只是设置了我的所有控制器和放大器暂时查看777权限。没运气。我缺少什么想法,或者我如何确保在我的服务器上注册了dll?

这是我的控制器操作方法:

public ActionResult DownloadFile(int id = 0)
    {
        var filename = string.Format("Invoice{0}.pdf", id);

        return new ActionAsPdf("Invoice" + "/" + id, new { name = "Invoice" + id }) { FileName = filename, PageSize = Size.Letter, PageOrientation = Orientation.Portrait, PageMargins = new Margins(0, 0, 0, 0) };
    }

enter image description here

4 个答案:

答案 0 :(得分:1)

旧线程,但我遇到了同样的问题,所以我想为将来搜索的人分享解决方案。

确保您在服务器上安装了正确的VS Redistributable,或者在Rotativa文件夹中安装了文件。

使用服务器IP地址而不是DNS名称。我不知道为什么会这样,但如果我弄明白就会编辑它。

答案 1 :(得分:0)

您需要在服务器上安装Visual C ++ Redistributable Packages。您可以从此处下载软件包:http://www.microsoft.com/en-gb/download/details.aspx?id=40784

答案 2 :(得分:0)

检查是否在服务器上的rotativa目录中添加所有文件 -

<强>的libeay32.dll

<强> wkhtmltopdf.exe

<强>等

答案 3 :(得分:-1)

您需要在Nuget中更新Rotativa,Rotativa.Core,Rotativa.MVC