IIS 中的 PuppeteerSharp

2024-01-20

我面临着一个有点恼人的情况。我们尝试在应用程序中使用 PuppeteerSharp 来生成背景 PDF,虽然它在开发模式下运行良好,但在生产环境中却不起作用。

该应用程序是一个WebAPI 2.0站点,.NET4.7.1,Windows 10机器。我认为这两种环境之间的主要区别是:

  • 在发布而不是调试中构建:在调试或发布模式下从控制台应用程序调用我的代码似乎以相同的方式工作
  • 开发中托管在 IIS Express 中,生产中托管在完整 IIS 中

我们使用以下代码:

var launchOptions = new LaunchOptions
{
    DefaultViewport = new ViewPortOptions
    {
        Width = 1920,
        Height = 1080,
        IsLandscape = printOptions.Orientation == PrintOrientation.Landscape
    },
    ExecutablePath = this._chromiumPath,
    Timeout = Timeout,
    TransportFactory = AspNetWebSocketTransport.AspNetTransportFactory
};

var browser = await Puppeteer.LaunchAsync(launchOptions)
    .ConfigureAwait(false);

var page = await browser.NewPageAsync()
    .ConfigureAwait(false);
await page.EmulateMediaTypeAsync(PuppeteerSharp.Media.MediaType.Print)
    .ConfigureAwait(false);

await page.GoToAsync(url, Timeout, new[] { WaitUntilNavigation.Networkidle0 })
    .ConfigureAwait(false);
await page.WaitForTimeoutAsync(2000)
    .ConfigureAwait(false);
var options = new PdfOptions
{
    Width = printOptions.Format == PrintFormat.A4 ? "210mm" : "297mm",
    Height = printOptions.Format == PrintFormat.A4 ? "297mm" : "420mm",
    PrintBackground = true,
    Landscape = printOptions.Orientation == PrintOrientation.Landscape,
    MarginOptions = new PuppeteerSharp.Media.MarginOptions
    {
        Top = ".4in",
        Bottom = ".4in",
        Left = ".4in",
        Right = ".4in"
    }
};
await page.PdfAsync(outputFile, options)
    .ConfigureAwait(false);
return result;

page.GoToAsync永远不会返回,并最终超时。

Edit:

  • 我将ConfigureAwait 设置为false在所有异步调用中
  • 我尝试使用AspNetWebSocketTransport.AspNetTransportFactory运输工厂,似乎也不起作用

using (var browser = await Puppeteer.LaunchAsync(new LaunchOptions()
{
    Headless = true,
    ExecutablePath = browserFetcher.GetExecutablePath(BrowserFetcher.DefaultRevision)
})

帮助我解决了问题,AspNet WebSocketTransport 提出了引用问题,并且似乎不再有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS 中的 PuppeteerSharp 的相关文章

  • x86_64 执行 Shellcode 失败:

    我在 64 位 Linux 上使用 Python 2 7 我有以下 Python 脚本 应该执行一个简单的 Hello World shellcode import urllib2 import ctypes shellcode xb8 x
  • Dynamic_cast 不适用于非多态类型的原因

    有课B和派生类D class B int b class D public B int d D d new D B b dynamic cast
  • python 组合数据框中的行并将值相加

    我有一个数据框 Type Volume Q 10 Q 20 T 10 Q 10 T 20 T 20 Q 10 我想将类型 T 合并到一行中 并且仅当两个 或更多 T 连续时才添加音量 即 Q 10 Q 20 T 10 Q 10 T 20 2
  • 我如何近似“你的意思是?”不使用谷歌?

    我知道这个问题重复 谷歌 你是说吗 是怎么回事 算法工作 https stackoverflow com questions 307291 how does the google did you mean algorithm work 如何
  • 错误“virtualenv:找不到命令”,但安装位置位于 PYTHONPATH 中

    在过去的两天里 这让我发疯 我在 Macbook 上安装了 virtualenvpip install virtualenv 但是当我尝试使用创建一个新的 virtualenv 时virtualenv venv 我收到错误消息 virtua
  • 如何使用 Java/Swing 旋转图像,然后将其原点设置为 0,0?

    我能够旋转已添加到 JLabel 的图像 唯一的问题是 如果高度和宽度不相等 旋转后的图像将不再出现在 JLabel 的原点 0 0 处 这就是我正在做的事情 我还尝试使用 AffineTransform 并旋转图像本身 但结果相同 Gra
  • 在 WPF DataGrid 中使用 Enter 键作为 Tab

    我有一个DataGrid in WPF I want to move to the NextCell when i hit Enter and when the LastColumn is reached it should have th
  • Android Studio - 恐慌:无法打开 AVD

    经过几个小时修复 Gradle 问题后 我能够在 Android Studio 中构建我的测试应用程序 但是当我尝试在 AVD 中运行它时 它就是打不开 这是日志 Waiting for device C Users Rahaman App
  • 如何在不使用 len 的情况下知道列表是否仅包含 1 个元素

    我想知道列表是否只包含一个元素 而不使用len 在这两种解决方案之间 最Pythonic的方法是什么 或者也许这些都不是Pythonic的 如果是的话那又是什么 解决方案a 删除位置1处的项目 除了IndexError所以我知道只有 1 件
  • Python 求解一个变量的方程

    我正在尝试使用 SymPy 求解 python 中的方程 我有一个生成的方程 类似于function y 8 0 y 3 0 我将其与 SymPy 一起使用来创建一个如下所示的新方程 eq sympy Eq function 2 哪个输出y
  • 如何反序列化动态Json对象?

    我目前从我的 api 收到以下 JSON 响应 Lastname ERRLASTNAMEEMPTY Firstname ERRFIRSTNAMEEMPTY 请注意 上述响应是动态的 即有时我可以有名字 有时可以有姓氏 有时两者都有 此响应基
  • 如何从 Kafka 主题获取最近的消息

    我们是否有任何选项 例如从 Kafka 主题获取最近 10 20 等消息 我可以看到 from beginning 选项从主题中获取所有消息 但如果我只想获取第一个 最后一个 中间或最新的几条消息 10 我们有一些选择吗 前 N 条消息 您
  • 在哪里可以找到张量流预训练模型(列表或下载链接)

    我开始使用英特尔 movidius 神经计算棒 就我而言 要开始工作 有必要下载预训练的模型 在他们提到的教程中http download tensorflow org models http download tensorflow org
  • 整数对的唯一哈希公式

    我想我可以使用 Cantor 创建一个独特的哈希 n x y x y x y 2 但我可以反转这个哈希值吗 如果没有 有人可以为可逆哈希提供类似的公式对吗 Thanks 如果 x y 和 n 都是相同的数据类型 n x y x y x y
  • Python 与 matplotlib - 重用绘图函数

    我对此有一个后续问题question https stackoverflow com questions 1401102 python with matplotlib drawing multiple figures in parallel
  • 本地化组名称

    我想通过向 Everyone 组分配权限来配置互斥访问规则 当我创建规则时 它看起来类似于以下内容 new MutexAccessRule Everyone MutexRights Modify MutexRights Synchroniz
  • 使用 CUPS 进行 Zebra 打印,不打印 ZPL 或 EPL

    我有一台 Zebra GK420d 通过 CUPS 连接到 OS X 但是 当我向其发送以 ZPL 或 EPL 编写的文件时 它们仅以纯文本形式打印 我需要更改打印机模式吗 与其他人所说的相反 您不需要专门添加原始队列 相反 您可以使用以下
  • 理解 SwiftUI 中的 @Binding

    我观看了一些关于数据绑定的WWDC视频和Apple文档 根据我目前的理解 State作为属性委托将提供视图和带注释的属性之间的绑定连接 例如 State var myText String var body some View VStack

随机推荐

  • PyGame 使 Linux 陷入困境?

    当我运行 pygame 代码时 它会使系统陷入困境 PyGame 变得无响应 并且它使 Ubuntu 的速度大大减慢 以至于我不得不强制关闭两次 我在这里发布了一个非常相似的问题 为什么我的基本 PyGame 模块这么慢 https sta
  • 如何内嵌文本旋转 90 度

    如何在不使用样式表的情况下将文本旋转 90 度 我已将以下说明放置在页面的标题区域中 然后我在相关段落周围放置了以下内容 div p My paragraph p div 但它不起作用 因此我的问题 这是一个小的视觉示例 rotate te
  • 谷歌地图不显示

    我需要在我的 php 页面地图上实现 我有容器 div div 它位于其他 div 内 我将这段代码放入其中标签 但根本不显示 有谁能够帮助我
  • 如何将表转换为 Spark Dataframe

    在 Spark SQL 中 可以使用以下命令将数据帧作为表进行查询 sqlContext registerDataFrameAsTable df mytable 假设我有的是mytable 我如何获取或访问它作为 DataFrame 最干净
  • 如何在 Swift 中规范化 UIImage 的像素值?

    我们正在尝试使UIImage以便它可以正确传递到 CoreML 模型中 我们从每个像素检索 RGB 值的方法是首先初始化一个 CGFloat 数组称为rawData每个像素的值 这样就有一个红色 绿色 蓝色和 alpha 值的位置 在bit
  • ANSI 颜色在带有 PowerShell 的 VSCode 集成终端中不起作用

    我正在为我的 python 项目使用 Visual Studio Code 并且我也在使用片状天堂 https flakeheaven readthedocs io en latest 未维护的分叉弗莱克地狱 https github co
  • 将 python BOTO 与 AWS SQS 结合使用,返回无意义的字符

    因此 我使用 python 和 BOTO 来访问我的 AWS SQS 我在 SQS 中有一些消息 我可以从 AWS 仪表板看到这些消息 然而 当我尝试通过 python 获取这些消息时 出现的字符只是乱码 知道这是怎么回事吗 conn bo
  • 在中继器内更新图像的 ImageUrl

    我希望有一个人可以帮助我 恐怕这是一个相当新手的问题 我在中继器中有一个图像 我想根据传递给它的参数更改其 IMAGEURL
  • 使用 Clipper 库 (c++) 进行线和多边形裁剪返回空路径

    我正在尝试使用 Clipper 库按线分割多边形 执行裁剪后 返回空路径 有人可以建议正确的方法来做同样的事情吗 Paths clip 2 soln clip 0 lt lt IntPoint 264 210 lt lt IntPoint
  • 在 Python 中下载 Sharepoint Excel 文件

    我正在尝试使用 Python 脚本从 SharePoint 存储库下载 Excel 文件 我正在使用 Office365 Rest Python Client 如示例中所定义https github com vgrem Office365
  • 在 Vista 上捕获“程序停止运行”

    在 Vista 上 我遇到了应用程序崩溃处理程序的问题 基本上 如果发生 SEH 无法捕获的意外情况 我会收到此弹出窗口 其中包含 应用程序停止工作 blablabla 关闭程序 调试程序 也就是说 在我使用系统控制面板 启用错误报告后 您
  • 如何获取图像的亮度梯度

    我正在努力通过图像亮度检查来理解图像 我尝试通过下面的代码找到图像的亮度 def brightness im file im Image open im file stat ImageStat Stat im r g b stat rms
  • 使闪亮的 dateInput 返回 NULL 或空字符

    我正在开发一个闪亮的应用程序 它允许用户从input插入 SQL Server 数据库 我想要做的一件事是删除当前存在的日期 为此 我需要一种方法来通过NULL NA or 某物我可以用它来将数据库中的值设置为 NULL dateInput
  • 查找具有属性支持的 JavaScript 库,用于在 JavaScript 中序列化和反序列化对象

    考虑 JavaScript 中的以下类 Tools UserBase Tools Class define Tools UserBase Tools EntityBase UserId type System Int32 key true
  • Laravel 在共享主机上运行 artisan 命令

    我在以下网站上托管了一个网站http 000webhostapp com http 000webhostapp com一段时间以来它工作正常 但它向我显示了这个错误 生产 错误 未指定应用程序加密密钥 我发现我必须运行这个 artisan
  • 如何使用 Terraform 和 AWS API Gateway 创建 API 代理

    我正在尝试使用 Terraform 在 AWS 上的 API Gateway 中建立一个简单的 API 代理 基本上 我想包装 root 并将请求代理回另一个端点 这可能是最简单的设置 但我似乎无法让它在 Terraform 中工作 您将在
  • 在 html 中添加图像

    我似乎无法在 html 中添加图像 我正在使用 ASP net MVC 3 我的图像名为 KeyLargoPic 位于闪存驱动器上的文件夹 X Project Project Photos Key Largo 中 它看起来是 JPEG 代码
  • 如何使 osx 应用程序向后兼容以及如何测试它们的困惑

    阅读苹果SDK指南后https developer apple com library mac documentation developertools conceptual cross development Overview overv
  • 正则表达式中反斜杠后面的数字是什么意思?

    a b 1 什么是 1这个表达的意思是 1 表示匹配表达式中的第一个捕获组 n将是第 n 个捕获组 注意 0将是整场比赛 在许多引擎中 n 的上限为 9 但有些引擎也支持高达 99 当在正则表达式中使用时 例如 a b 1 这意味着在 a
  • IIS 中的 PuppeteerSharp

    我面临着一个有点恼人的情况 我们尝试在应用程序中使用 PuppeteerSharp 来生成背景 PDF 虽然它在开发模式下运行良好 但在生产环境中却不起作用 该应用程序是一个WebAPI 2 0站点 NET4 7 1 Windows 10机