【发布时间】: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