【问题标题】:Rotativa file not found on server only仅在服务器上找不到 Rotativa 文件
【发布时间】:2015-04-10 15:02:40
【问题描述】:

我正在使用 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) };
    }

【问题讨论】:

标签: asp.net-mvc-4 rotativa


【解决方案1】:

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

libeay32.dll

wkhtmltopdf.exe

【讨论】:

    【解决方案2】:

    老帖子,但我遇到了同样的问题,所以我想分享解决方案,供以后搜索的人使用。

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2016-05-02
          • 1970-01-01
          • 2020-02-14
          • 1970-01-01
          • 1970-01-01
          • 2020-08-07
          • 2017-03-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多