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

Azure文档翻译服务返回202状态码但未生成目标翻译文件,求排查原因

Azure文档翻译服务返回202但无输出文件的排查方案

1. 未跟踪异步任务的实际执行状态

Azure文档翻译的202状态码仅表示请求已被服务接受,不代表翻译任务已成功完成。你当前的代码仅判断状态码后就直接返回结果,没有轮询任务的实际执行状态,后台任务可能已失败但未被捕获。

需要从202响应的Headers中提取Operation-Location字段,通过该URL查询任务状态,直到任务完成或失败。补充代码示例:

if (response.IsSuccessStatusCode)
{
    if (response.Headers.TryGetValues("Operation-Location", out var operationLocations))
    {
        string operationUrl = operationLocations.First();
        // 轮询任务状态
        while (true)
        {
            var statusResponse = await client.GetAsync(operationUrl);
            string statusContent = await statusResponse.Content.ReadAsStringAsync();
            
            // 解析任务状态(需引入JSON解析库,如Newtonsoft.Json)
            var statusObj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(statusContent);
            string currentStatus = statusObj.status;

            if (currentStatus == "Succeeded")
            {
                outcome = $"https://storageaccount.blob.core.windows.net/test/{fname}";
                break;
            }
            else if (currentStatus == "Failed")
            {
                log.Error($"翻译任务失败:{statusObj.error.message}");
                break;
            }

            // 间隔5秒后再次查询
            await Task.Delay(5000);
        }
    }
}

2. SAS令牌存在权限或有效性问题

检查sourceUrl和targetUrl中的SAS令牌:

  • 权限不足:源文件SAS需至少包含r(读取)权限,目标文件SAS需包含w(写入)、c(创建)权限,确保sp参数包含对应权限位。
  • 时间无效:确认st(开始时间)和se(结束时间)为有效ISO 8601格式(如2024-05-20T08:00:00Z),且当前时间处于该区间内。
  • 签名失效:如果生成SAS时的参数(存储账户名、容器名、权限、时间范围)有变更,签名会失效,需重新生成正确的SAS令牌。

3. Blob存储路径或配置错误

  • 路径拼写错误:Azure Blob存储的容器名、文件名区分大小写,确认targetUrl中的路径与实际存储容器、文件名完全一致。
  • 容器访问限制:若容器为Private级别,需确保SAS令牌的权限范围覆盖目标路径;若为Blob/Container级别,确认无额外访问策略限制。
  • 目标Blob无法覆盖:若目标Blob已存在,检查SAS令牌是否包含o(覆盖)权限,或尝试删除已存在的目标Blob后重新测试。

4. Azure服务API版本或路由变更

数月前的代码可能依赖旧版API,需确认:

  • 路由正确性:当前使用的endpoint+route是否符合最新文档翻译服务的要求(如官方推荐的路由为/translator/text/batch/v1.1/documents)。
  • 参数兼容性:检查请求体参数格式是否有变更,是否新增必填字段(可对照官方最新文档验证)。

5. 请求体格式或编码问题

输出json变量到日志,确认JSON语法无错误(如引号配对、逗号位置正确);同时确保StringContent的编码(UTF-8)和媒体类型(application/json)设置正确,避免服务无法解析请求体。

内容的提问来源于stack exchange,提问作者Karthik.M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 08:31:14