【问题标题】:Rotativa pdf does not work on serverRotativa pdf在服务器上不起作用
【发布时间】:2015-01-07 11:44:12
【问题描述】:

我正在使用 Rotativa 生成我的观点的 pdf。在我的本地计算机上这有效。在我的在线服务器上,它说找不到文件或目录。这可能是一个权限问题。知道如何解决吗?

提前感谢

【问题讨论】:

  • 通过设置适当的权限。
  • 谢谢,但是在哪里,在哪个文件夹
  • 您能更详细地描述您的问题吗?我不确定这是权限问题,如果是这样,您的服务器用户拥有对网站目录的访问权限就足够了(但我猜他已经拥有此访问权限)我曾经遇到过类似的问题。你如何渲染视图?使用 actionAsPdf 什么的?

标签: asp.net-mvc rotativa


【解决方案1】:

Rotativa 在其核心使用 wkhtmltopdf,从 >0.12.0.0 开始依赖于可分发的 VC++ lib (msvcp120.dll)

您可能需要从这里下载安装程序,而不仅仅是将 dll 复制到服务器 http://wkhtmltopdf.org/downloads.html

服务器 wkhtmltopdf 是否工作的简单测试:

C:\[path to the wkhtmltopdf]\wkhtmltopdf.exe https://google.com test.pdf

【讨论】:

  • 我在 IIS7.5 上的 Win Server 2008 上遇到了类似的问题。我所做的是,运行下载 -> 将 wkhtmltopdf.exe 和 dll 复制到 IIS 应用程序中的 Rotativa 文件夹,它开始工作。某些服务器上总是会丢失某些 dll,最好使用下载而不是手动添加 dll。
【解决方案2】:

解决方案是将 Rotativa.Mvc.ActionasPdf() 替换为 Rotativa.Mvc.ViewasPdf

public ActionResult DetailPdf(int? id)
    {
        Progetto Progetti = db.Progetti.Find(id);
        return new Rotativa.MVC.ViewAsPdf("DetailPdf", Progetti);
    }

我不知道 ActionAsPdf 的问题是什么

【讨论】:

    【解决方案3】:

    第 1 步:转到存储 pdf 文件的服务器文件夹
    第 2 步:在文件夹属性上更改安全性,禁用只读复选框并更改为完全控制或给予写入控制。
    第 3 步:在 web.config 中更改为

    <system.web>   
    <authentication mode="None" /> /// or bring the suitable authentication
    .......................
    

    【讨论】:

      【解决方案4】:

      我们在 Windows 服务器上遇到了同样的问题。发现 Reports 被 sql server 报告服务使用。所以我们只需要在我们的应用程序中将所有 Reports 实例重命名为其他名称。

      【讨论】:

      • 请不要在回答中包含指向您博客的链接或签名。
      猜你喜欢
      • 2016-05-02
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 2016-02-15
      • 2015-04-10
      • 2016-06-08
      • 2012-09-03
      • 2015-11-24
      相关资源
      最近更新 更多