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

调用Azure Communication Service录制文件下载API偶发错误咨询

问题描述

我开发了一款以Angular为前端、ASP.NET Core为后端的会议应用,整体运行正常,但有时通过servercallid下载录制文件时会出现“Service Unavailable”错误。多数情况下文件可正常生成并存储至Blob存储,但偶发错误的原因不明,且未收到包含具体异常信息的响应。

Service Unavailable错误截图

请问录制文件的生成是否有特定的大小或时间限制?


分析与解答

一、录制文件的大小/时间限制

默认情况下,ASP.NET Core和Blob存储本身没有针对录制文件的强制大小/时间限制,但以下环节可能引入隐性限制:

  • ASP.NET Core 请求限制:
    • 如果后端通过IFormFile接收录制文件,默认请求体大小限制为30MB,可通过Program.cs调整:
      builder.Services.Configure<FormOptions>(options =>
      {
          options.MultipartBodyLengthLimit = 1073741824; // 设为1GB示例
      });
      
    • Kestrel服务器的请求大小限制,可通过配置文件修改:
      "Kestrel": {
          "Limits": {
              "MaxRequestBodySize": 1073741824
          }
      }
      
  • Blob存储层面:
    主流Blob存储(如Azure Blob)单个块Blob最大支持4.75TB,页Blob最大8TB,存储本身不会成为常规录制文件的瓶颈,但流式上传时需确保分块逻辑无异常。
  • 第三方会议SDK限制:
    如果你的应用依赖第三方会议录制SDK(如Zoom、Teams相关组件),这类SDK通常会自带录制时长/大小限制,需查阅对应官方文档确认。

二、偶发“Service Unavailable”(503)错误排查方向

  1. 补全后端日志:
    开启ASP.NET Core详细异常日志,在appsettings.json中配置:
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft.AspNetCore.Server.Kestrel": "Debug",
            "Azure.Storage.Blobs": "Debug"
        }
    }
    
    同时检查Blob存储的操作日志,排查是否存在上传超时、权限失效等记录。
  2. 服务器资源监控:
    偶发503常和服务器资源耗尽有关,错误发生时检查:
    • CPU使用率是否飙升
    • 内存是否不足导致进程被回收
    • 网络带宽是否被大文件传输占满
  3. 调整请求超时配置:
    若录制文件生成/下载耗时过长,可能触发超时:
    • 后端调整Kestrel超时:
      builder.Services.Configure<KestrelServerOptions>(options =>
      {
          options.Limits.RequestHeadersTimeout = TimeSpan.FromMinutes(10);
      });
      
    • 前端Angular同步调整HTTP请求超时:
      this.http.get(downloadUrl, { timeout: 600000 }) // 10分钟超时示例
      
  4. 优化Blob存储连接:
    偶发的存储连接超时可能导致未捕获异常,需添加重试机制:
    var blobClient = new BlobClient(connectionString, containerName, blobName);
    var uploadOptions = new BlobUploadOptions
    {
        Retry = new BlobRetryOptions
        {
            MaxRetries = 3,
            Mode = RetryMode.Exponential
        }
    };
    await blobClient.UploadAsync(stream, uploadOptions);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:10:31