Rotativa ActionAsPdf() 非常慢

2023-12-12

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(使用前将#替换为@)

Rotativa ActionAsPdf() 非常慢 的相关文章

  • 在 Web 浏览器中禁用 F5 [重复]

    这个问题在这里已经有答案了 可能的重复 禁用浏览器的后退按钮 https stackoverflow com questions 961188 disable browsers back button 如何禁用浏览器上的 F5 刷新 htt
  • libtool 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出错

    在 Ubuntu 13 04 上构建 thrift 0 9 1 支持 C C java C perl python 时出现此错误 configure 不带任何选项运行 make 不带任何选项运行 Making all in test mak
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • 为什么 C# 中同一类型的隐式和显式运算符不能共存? [复制]

    这个问题在这里已经有答案了 为什么同一类中两个相同类型的运算符 显式和隐式 不能共存 假设我有以下内容 public class Fahrenheit public float Degrees get set public Fahrenhe
  • 从时间列表中查找最接近的时间

    所以 这是场景 我有一个带有创建时间的文件 我想从该文件的创建时间最接近或相等的时间列表中选择一个时间 完成此操作的最佳方法是什么 var closestTime listOfTimes OrderBy t gt Math Abs t fi
  • 关闭整数的最右边设置位

    我只需要关闭最右边的设置位即可 我的方法是找到最右边位的位置 然后离开该位 我编写这段代码是为了这样做 int POS int n int p 0 while n if n 2 0 p else break n n 2 return p i
  • 无法获取本地或参数的值,因为它在此指令指针处不可用,可能是因为它已被优化掉

    Visual Studio 2010 会删除 没有其他词 不安全块中函数参数之一中的数据 什么可能导致此错误 调试器显示以下消息 Cannot obtain value of local or argument as it is not a
  • “没有合适的默认构造函数可用”——为什么会调用默认构造函数?

    我已经查看了与此相关的其他一些问题 但我不明白为什么在我的情况下甚至应该调用默认构造函数 我可以只提供一个默认构造函数 但我想了解它为什么这样做以及它会产生什么影响 error C2512 CubeGeometry no appropria
  • 如何设置消息队列的所有者?

    System Messaging MessageQueue 类不提供设置队列所有权的方法 如何以编程方式设置 MSMQ 消息队列的所有者 简短的答案是 p invoke 对 windows api 函数的调用MQSetQueueSecuri
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • WinForms - 加载表单时如何使用 PaintEventArgs 运行函数?

    我试图理解图形 在 Graphics FromImage 文档中 它有这样的示例 private void FromImageImage PaintEventArgs e Create image Image imageFile Image
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • 在 Qt 中播放通知(频率 x)声音 - 最简单的方法?

    Qt 5 1 或更高版本 我需要播放频率为 x 的通知声音 n 毫秒 如果我能像这样组合音调那就太好了 1000Hz 持续 2 秒 然后 3000Hz 持续 1 秒 最简单的方法是使用文件 WAV MP3 例如如此处所述 如何用Qt播放声音
  • 时间:2019-03-17 标签:c#TimerStopConfusion

    我想通过单击按钮时更改文本颜色来将文本框文本设置为 闪烁 我可以让文本按照我想要的方式闪烁 但我希望它在闪烁几次后停止 我不知道如何在计时器触发几次后让它停止 这是我的代码 public Form1 InitializeComponent
  • 当 Verb="runas" 时设置 ProcessStartInfo.EnvironmentVariables

    我正在开发一个 C 应用程序 我需要创建变量并将其传递给新进程 我正在使用ProcessStartInfo EnvironmentVariables 新进程必须提升运行 因此我使用 Verb runas var startInfo new
  • 值和类型的简洁双向静态 1:1 映射

    我将从我想象如何使用我想要创建的代码开始 它不必完全像这样 但它是我在标题中所说的 简洁 的一个很好的例子 就我而言 它是将类型映射到相关的枚举值 struct bar foo
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe

随机推荐

  • 去除不在安全列表中的 HTML 标签的方法

    有没有一种方法可以去除所有不在安全标签列表中的 HTML 标签 如果没有 正则表达式 实现它的方法是什么 我正在寻找类似 PHP 的东西strip tags函数 做 不是 使用 正则表达式 到 解析 HTML 使用 XML 解析器 MSDN
  • 用于文件上传的 JWT 令牌和 Multer(节点)

    我需要一些帮助来弄清楚如何让它工作 我已经测试过并在我的 user 路由上使用了有效的 JWT 身份验证和 SSL 我试图安全地允许用户上传音频文件 也使用 JWT 和 SSL 路由 身份验证中间件可以工作 当我注释掉身份验证中间件时 mu
  • 使用不受信任的证书进行 WP7 HttpWebRequest POST?

    我正在开发一个进行 REST 服务调用的 Windows Phone 7 应用程序 托管 Web 服务的第三方在当前环境中具有无效证书 当我在 Firefox 中点击 URL 时 我收到有关证书的警告 并询问我是否要继续 我还使用 Post
  • Python Tkinter 应用程序无法正确退出

    from TKinter import class Ui Frame def init self Frame init self None self grid bquit Button self text Quit command self
  • Python镜像字符串函数

    我正在尝试开发一个功能mirror 它接受一个字符串并返回其镜像字符串 但前提是镜像字符串可以使用给定字符串中的 镜像 字母表示 例如 gt gt gt mirror vow wov gt gt gt mirror wood boow gt
  • 避免 MS Access 中的 SQL 注入 [重复]

    这个问题在这里已经有答案了 我试图更好地理解参数化 sql 作为 SQL 注入的解决方案 可以说我有一个tblCustomer与田野CustName Phone and Address 还可以说我有一个输入表单供新客户输入他们的数据 其中的
  • 使用 Kabsch 算法实现 3D 最佳旋转

    问题 我正在尝试使用卡布什算法找到两组 4 点之间的最佳旋转 但我得到的错误大得令人无法接受 我想绘制红点 P 到蓝点 Q 如图所示here 我尝试过的 这是我对 Kabsch 算法的实现 给定 numpy 数组mapping points
  • 如何可靠地检查对象是否是 EcmaScript 6 Map/Set?

    我只想检查一个对象是否是Map or Set而不是一个Array 检查我正在使用 lodash 的数组 isArray function myFunc arg if isArray arg doSomethingWithArray arg
  • 如何将 R 脚本与 R 中的 Shiny 应用程序连接?

    我已经开发了一个 R 脚本 现在我想将此 R 脚本与 Shiny 应用程序连接起来 即 我正在 Shiny 中开发 GUI 但在连接 RScript 和 Shiny 时遇到问题 我想使用 Shiny 应用程序调用 RScript 的输出 我
  • 从PhoneGap(Android)访问外部URL(Google.com)

    我是 PhoneGap 和 Android 的新手 我无法像 PhoneGap 中的 google 那样访问外部 URL 我尝试了 Iframe 和 Window Location Href 但不确定为什么它不起作用
  • Python Tkinter:将函数绑定到 for 循环中的变量列表

    我正在构建一个包含很多按钮的应用程序 因此我使用它们的列表和 for 循环将一个函数绑定到每个按钮 在单击时打印按钮的文本 当我将它单独绑定到每个按钮时 一切正常 但是当我使用 for 循环时 每个按钮仅打印按钮列表中最后一项的文本 在本例
  • 计算阶跃函数的总和

    我有相当多 大约 1000 个 的阶跃函数 每个阶跃函数只有两个间隔 我想将它们相加 然后找到最大值 做这个的最好方式是什么 我尝试过sympy 代码如下 from sympy import Piecewise piecewise fold
  • Gmail API - 值“= 获取标签 google-api-dotnet-client/1.25.0.0 (gzip)”的格式无效

    我开始探索 Gmail API 我按照教程显示标签列表 https developers google com gmail api quickstart dotnet 并且工作得很好 高度赞赏帮助 当我修改程序流程时 它给了我错误 我无法追
  • 如何在惰性列表中使图像更大(高度)

    我正在使用 Lazy list 项目开发一个图书阅读器这是链接 问题 我看到了惰性列表的外观页面高度小 图像模糊 很难阅读 我要这个 它应该看起来清晰 不是模糊 并且整页的高度像这样 I know 惰性列表加载位图的样本大小 我怎样才能获得
  • 使用可变数量的 IN (p1, p2, p3) 参数的动态查询

    我有以下内容 Dim strdepToDelete As String Dim strOtherToDelete As String strdepToDelete String Join depToDelete strOtherToDele
  • 使用“attr()”时选择之间的差异

    我有一段在单击按钮时调用的代码 const lines svg select lines selectAll line data arr lines enter append line lines attr x1 d gt d attr y
  • 将图像添加到多边形

    我一直在四处寻求帮助 但没有运气 所以我想我会问 我正在创建一系列菱形多边形 并想在它们上添加图像 但尝试在它们上绘图 但没有成功 关于如何做到这一点的任何建议 Thanks graphics setClip Shape graphics
  • 使用 ant 迭代 int xml 文件

    我有一个包含以下结构的 Xml 文件 我想按节点读取点头并使用不带公共分隔符的值调用特定任务 在 Ant 中这可能吗
  • 从 WriteFile 到物理磁盘的访问被拒绝错误,win7

    我正在尝试将一些数据从特定的物理扇区写入 SD 卡 我从一家公司收到了执行此操作的代码 他们说它在 windows xp 上工作正常 这与以下情况相同Win Vista 7 下的 WriteFile 错误 5 拒绝访问 这是将数据写入 SD
  • Rotativa ActionAsPdf() 非常慢

    Using 旋转1 6 4来自 NuGet 并使用下面的代码注意到以下问题 ActionAsPdf 随机挂起不确定的时间 下面的代码挂起 var pdfResult new ActionAsPdf Report new id Request