Using 旋转1.6.4来自 NuGet 并使用下面的代码注意到以下问题。
ActionAsPdf 随机挂起不确定的时间。
下面的代码挂起:
var pdfResult = new ActionAsPdf("Report", new {id = Request.Params["id"]})
{
Cookies = cookieCollection,
FormsAuthenticationCookieName = FormsAuthentication.FormsCookieName,
CustomSwitches = "--load-error-handling ignore"
};
可能有帮助的背景信息:
customSwitches 用于忽略使用 ActionAsPdf 调用 wkhtmltopdf.exe 的已记录问题,但它不会仅在 wkhtmltopdf 调用中抑制代码中的错误。
观察、使用和测试:
它可以工作,但在运行应用程序时(无论是否单步执行代码),在点击 pdfResult = new ActionAsPdf 和最终进入被调用的“Report”操作之间可能需要 10 秒到大约 4 分钟的时间。无法辨别 Visual Studio 的输出窗口中实际发生的任何事情,我发现没有抛出任何错误。只是随机缓慢过渡到 Reports() 操作。
我可以直接通过 URL 运行 Reports() 操作,它永远不会像这样慢下来,而且对于 PDF 生成来说速度相当快。我使用 ActionAsPdf 运行它来获取二进制文件以保存到文件系统并通过电子邮件发送,这是为此库执行此操作的规定方法。
该行为在本地 Windows 10 开发盒和远程 Server 2008R2 测试盒上都存在。两个机器上都是 .Net 4.5.1,每个机器上都有默认的 IIS。
我有的问题:
您知道什么可能会导致速度变慢以及如何补救吗?
我最终使用 UrlAsPdf() 而不是 ActionAsPdf() 并且它有效。似乎 ActionAsPdf() 可能存在一些问题,我已在 GitHub 上向 Rotative 项目提交了一个错误。 ActionAsPdf() 仍标记为测试版,因此希望它能在未来版本中或由社区修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)