首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >罗塔蒂瓦ActionAsPdf()非常慢

罗塔蒂瓦ActionAsPdf()非常慢
EN

Stack Overflow用户
提问于 2015-09-29 21:39:46
回答 2查看 4.3K关注 0票数 4

使用来自罗塔蒂瓦1.6.4的NuGet,并注意到以下使用下面代码的问题。

ActionAsPdf随机挂起不确定的时间。

下面的代码正在悬挂:

代码语言:javascript
复制
   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 =新的ActionAsPdf到最终进入调用的"Report“操作之间的时间可以从10秒到大约4分钟不等。无法识别Visual的“输出”窗口中实际发生的任何事情,因此不会抛出我找到的任何错误。只是随机缓慢地过渡到Reports()操作。

我可以通过URL直接运行Reports()操作,它从不像这样慢下来,对于PDF生成来说非常快。我正在运行它,使用ActionAsPdf获取二进制文件,保存到文件系统,并通过电子邮件发送,这是为这个库规定的方法。

这种行为既存在于本地Windows 10开发框中,也存在于远程服务器2008R2测试框中。.Net 4.5.1在两个框上,每个框上都默认IIS。

我有问题:

知道是什么原因导致了这种减速,以及如何补救它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-12 21:26:02

最后,我使用了UrlAsPdf()而不是ActionAsPdf(),它可以工作。看来ActionAsPdf()可能有一些问题,我在GitHub上向旋转项目提交了一个bug。ActionAsPdf()仍然被标记为beta,因此希望它在将来的版本或社区中得到修正。

票数 1
EN

Stack Overflow用户

发布于 2020-11-08 18:34:17

在我的例子中,随着使用UrlAsPdf(),我不得不做更多的调整。我已经将问题缩小到了我正在添加的cookie集合。所以我试着添加我需要的曲奇,这个问题就解决了。下面是我使用的示例代码。

代码语言:javascript
复制
        var report = new UrlAsPdf(url);

        Dictionary<string, string> cookieCollection = new Dictionary<string, string>();
        foreach (var key in Request.Cookies.AllKeys)
        {
           if (Crypto.Hash("_user").Equals(key))
           {
              cookieCollection.Add(key, Request.Cookies.Get(key).Value);
              break;
           }
        }
        report.Cookies = cookieCollection;
        report.FormsAuthenticationCookieName = FormsAuthentication.FormsCookieName;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32854225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档