You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Web应用中SelectPDF突发‘导航超时’转换错误求助

解决Azure上.NET 6 WebAPI使用SelectPDF 21.0转换HTML到PDF时的导航超时问题

问题背景

部署在Azure上的.NET 6.0 WebAPI应用已稳定运行超一年,近期多数调用SelectPDF将Razor视图生成的HTML转为PDF的控制器方法报错,本地运行正常,Azure环境失败,未修改过应用配置,使用SelectPDF 21.0版本。错误信息如下:

Message = Conversion error: Navigation timeout.
Stack Trace = at SelectPdf.HtmlToImage.?(String A_0, String A_1, String A_2, ?& A_3, String& A_4)
at SelectPdf.HtmlToPdf.?(String A_0, String A_1, String A_2, String A_3, Boolean A_4)
at SelectPdf.HtmlToPdf.ConvertHtmlString(String htmlString, String baseUrl)
at AL.WebAPI.Controllers.FloorPlanDiagramController.PrintStandardFloorPlanDiagramsByPlanId(Int32 planId) in C:\Projects\AL-WEBAPI\al-webapi\AL.WebAPI\Controllers\FloorPlanDiagramController.cs:line 559
Source = Select.Pdf

解决方案

  • 延长SelectPDF导航超时时间
    Azure环境的资源调度可能比本地慢,默认超时阈值不足以完成转换。初始化HtmlToPdf实例时显式设置更长的超时:

    var htmlToPdf = new HtmlToPdf();
    htmlToPdf.Options.NavigationTimeout = 30000; // 示例设置为30秒,可根据实际情况调整
    
  • 检查Azure App Service资源使用情况
    查看Azure门户中应用的CPU、内存、磁盘IO监控指标,如果资源使用率持续偏高,会导致PDF转换过程变慢触发超时。考虑升级App Service计划的层级,分配更多资源。

  • 排查HTML外部资源加载问题
    Razor视图生成的HTML若包含外部图片、CSS或JS资源,在Azure环境中可能加载缓慢或无法访问:

    • 确认所有外部资源的URL在Azure环境下可正常访问,避免引用本地内网路径
    • 将小型资源(如图片)转为Base64嵌入HTML,减少外部请求依赖
  • 清理临时文件并确保资源释放
    Azure上的临时文件积累可能影响转换效率,确保转换完成后释放HtmlToPdf资源,并配置合理的临时目录:

    using (var htmlToPdf = new HtmlToPdf())
    {
        htmlToPdf.Options.TemporaryFilesFolder = Path.GetTempPath();
        // 执行转换逻辑
    }
    
  • 升级SelectPDF版本
    21.0版本发布时间较早,后续版本可能修复了Azure环境下的兼容性问题。先在本地测试升级到最新稳定版,确认无兼容问题后部署到Azure。

  • 检查Azure网络配置
    确认Azure App Service的出站网络规则未限制SelectPDF渲染引擎(基于Chromium)的必要网络访问,同时排查所在区域是否有网络波动情况。

内容的提问来源于stack exchange,提问作者elitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:45:13