【问题标题】:Pdf download using rotativa-taking long time in production使用rotativa下载pdf-在生产中花费很长时间
【发布时间】:2014-06-30 06:11:36
【问题描述】:

我在 MVC3 中使用 rotativa 下载 pdf 格式的多个视图。它在我的本地系统中运行良好。但是当我将它移到生产环境时,它需要将近 2-3 分钟才能下载。请提出任何选项以加快生产速度。

我在 rotativa 中使用 ViewAsPdf。

  return new ViewAsPdf("PDF") { FileName = "Application1.pdf", CustomSwitches = "--print-media-type" };

谢谢。

【问题讨论】:

  • 我之前在这些场景中看到的一个问题是服务器没有与客户端相同的网络配置。我实际上已经看到许多 Web 服务器甚至无法解析自己的 DNS 名称。您是否具有对服务器的命令行访问权限?如果是这样,请尝试从命令行运行 wkhtmltopdf(rotativa 包装)并查看是否有任何消息。或者更好的是,尝试运行 something like this 并查看 stdout,以便您可以看到它在相同的安全上下文下的作用。
  • Css 页面也不会在生产服务器中呈现。你能解释一下吗?
  • CSS 不渲染是一个重要的细节。如果我猜的话,您的服务器正在尝试获取这些文件并且在 30 或 60 秒后超时,这就是为什么它需要这么长时间。这可能是 DNS 解析问题,您的服务器的内部 DNS 与公众不匹配。也可能是专用网络无法确定与专用网络相关的公共 DNS 请求。或者 SSL 证书可能会妨碍您。或者可能只是 HTML 中的相对路径与绝对路径。尝试手动运行 wkhtmltopdf 并检查日志

标签: asp.net-mvc-3 pdf-generation wkhtmltopdf rotativa


【解决方案1】:

这可能是因为在您的视图页面的布局页面中链接的 js & css 文件的不必要链接。尝试为 pdf 页面制作一个单独的布局页面,并仅保留相关的 js & css 调用,这些调用仅用于 pdf 生成(设计相关)。我遇到了同样的问题,这种方法解决了我在生产中的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2015-01-17
    • 1970-01-01
    • 2022-12-05
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多