使用NuGet 的Rotativa 1.6.4并注意到使用以下代码的以下问题。
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 和最终进入被调用的“报告”操作之间可能需要 10 秒到大约 4 分钟。无法辨别 Visual Studio 的输出窗口中实际发生的任何事情,我发现没有抛出任何错误。只是随机缓慢过渡到 Reports() 操作。
我可以直接通过 URL 运行 Reports() 操作,它永远不会像这样变慢,并且对于 PDF 生成来说非常快。我正在使用 ActionAsPdf 运行它以获取二进制文件以保存到文件系统并通过电子邮件发送,这是该库的规定方法。
该行为同时存在于本地 Windows 10 开发盒和远程 Server 2008R2 测试盒上。两个盒子上的 .Net 4.5.1,每个盒子上的默认 IIS。
我的问题:
关于可能导致速度变慢的原因以及如何补救的任何想法?