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

Azure SWA部署含PuppeteerSharp的Func报UnauthorizedAccessException

问题解决方法

1. PuppeteerSharp权限报错修复

根因:Azure Static Web App(SWA)托管的API函数运行时,站点发布目录(包括bin目录)属于只读区域,无写入权限,你修改路径到bin目录依然属于只读范围,所以方案不生效。
正确修改方案:将Chromium下载路径指向SWA运行环境的可写临时目录,同时补充沙箱启动参数:

// 优先使用系统临时目录,SWA Windows环境下该路径为D:\local\Temp,有完整读写权限
var tempPath = Path.Combine(Path.GetTempPath(), ".local-chromium");
var browserFetcher = new BrowserFetcher(new BrowserFetcherOptions
{
    Path = tempPath
});
// 检查是否已下载,避免重复下载浪费资源
if (!browserFetcher.LocalRevisions().Contains(BrowserFetcher.DefaultChromiumRevision))
{
    await browserFetcher.DownloadAsync();
}
await using var browser = await Puppeteer.LaunchAsync(
    new LaunchOptions
    {
        Headless = true,
        ExecutablePath = browserFetcher.RevisionInfo(BrowserFetcher.DefaultChromiumRevision).ExecutablePath,
        // 适配Azure沙箱限制的必要参数
        Args = new [] { "--no-sandbox", "--disable-setuid-sandbox" }
    }
);

如果Windows环境下依然启动失败,可以切换SWA的运行环境为Linux,Linux沙箱对Chromium的兼容性更好。

2. Azure Static Web App Kudu访问说明

  • 标准层、付费层SWA支持Kudu访问:访问地址为你的SWA域名添加.scm前缀,例如SWA访问地址为https://<自定义前缀>.azurestaticapps.net,则Kudu地址为https://<自定义前缀>.scm.azurestaticapps.net,使用Azure账号登录后即可查看目录结构、查看运行日志等。
  • 免费层SWA不提供Kudu访问权限,无法通过该方式查看目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:15:03