使用NuGet的Rotativa 1.6.4,并使用下面的代码注意到以下问题。Rotativa ActionAsPdf()非常慢
ActionAsPdf随机挂起不确定的时间量。
下面的代码是挂:
var pdfResult = new ActionAsPdf("Report", new {id = Request.Params["id"]})
{
Cookies = cookieCollection,
FormsAuthenticationCookieName = FormsAuthentication.FormsCookieName,
CustomSwitches = "--load-error-handling ignore"
};
背景信息,可以帮助:
的customSwitches在使用中忽略了一个问题,文件调用wkhtmltopdf.exe使用ActionAsPdf,但它确实不要仅在wkhtmltopdf调用中抑制代码中的错误。
观测,使用和测试:
它的工作原理,但运行应用程序时(无论是否通过代码步进),它可以在10秒内的任何地方高达击中pdfResult之间约4分钟=新ActionAsPdf并最终进入被称为“报告”的行动。无法辨别Visual Studio的输出窗口中实际发生的任何事情,我没有发现任何错误。只是随机缓慢转换到Reports()操作。
我可以直接通过URL运行Reports()动作,它不会像这样变慢,而且对于PDF生成来说速度非常快。我正在使用ActionAsPdf运行它,以获取二进制文件保存到文件系统并通过电子邮件发送,这是此库的规定方法。
该行为在本地Windows 10开发盒和远程Server 2008R2测试盒上都存在。 .Net 4.5.1在两个盒子上,每个盒子默认IIS。
问题,我有:
上什么可能下降,以及如何解决它,因为这种缓慢的任何想法?
这是否解决了速度问题?我的速度还是很慢的。我的开发机器需要几分钟的时间。 – Jess
UrlAsPdf()在我使用过的本地开发,测试,阶段和产品环境中没有任何缓慢的问题,其中ActionAsPdf()在所有环境中都存在问题,缓慢的下降似乎是随机的,就像我尚未确定任何条件可靠地重复它。 – SouthPlatte
感谢您的回复! :)如果你好奇,我最终会以另一种方式解决它:http://stackoverflow.com/questions/35067191/why-does-rotativa-always-generate-my-login-page-why-is-it-slow – Jess