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

调用Azure认知服务时出现Unauthorized异常的问题排查

解决Azure Computer Vision的Unauthorized异常问题

看起来你已经排查了几个常见的关键点(密钥匹配、区域正确、有可用额度),但还是遇到了授权失败的问题,结合你的描述和代码片段,我整理了几个容易被忽略的排查方向:

1. 自定义扩展类ComputerVisionApiExtensions可能存在授权逻辑问题

你代码里用的ComputerVisionApiExtensions并非Azure官方SDK的标准类,而是自定义的封装扩展。这种情况下大概率是这个类内部没有正确处理API密钥的传递——比如没把密钥放到请求头的Ocp-Apim-Subscription-Key字段里,或者构造的Endpoint地址格式错误。

建议先换成官方SDK的标准调用方式测试,排除自定义类的问题:

using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;

// 替换成你的密钥和区域对应的Endpoint
var subscriptionKey = "你的API密钥";
var endpoint = "https://你的区域.api.cognitive.microsoft.com/";

// 初始化官方客户端
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
    Endpoint = endpoint
};

// 调用DescribeImage接口
var result = await client.DescribeImageAsync("https://oxfordportal.blob.core.windows.net/vision/Analysis/1-1.jpg");

如果官方代码能正常运行,那问题肯定出在你的自定义扩展类里,需要检查它的请求构造逻辑。

2. API密钥可能存在隐藏的格式问题

哪怕你确认密钥和Azure门户上一致,也有可能复制时不小心带了空格、换行符或者不可见字符(比如复制时选中了密钥前后的空格)。建议:

  • 直接在Azure门户里点击密钥旁边的“复制到剪贴板”按钮,重新复制密钥
  • 把复制的密钥粘贴到记事本里,检查前后有没有多余字符,再复制到代码中

3. 区域字符串的格式是否正确

Azure要求区域用短代码格式(比如eastus、westeurope、southeastasia),而不是门户上显示的友好名称(比如“美国东部”)。你可以在Azure门户的Computer Vision服务概览页,查看“Endpoint”字段里的区域部分——比如Endpoint是https://eastus.api.cognitive.microsoft.com/,那区域代码就是eastus,确保代码里的区域参数和这个一致。

4. 网络/防火墙可能拦截了请求

有时候公司网络或者本地防火墙会拦截出站的API请求,导致请求根本没到达Azure服务,这时也会返回Unauthorized错误。你可以:

  • 切换到个人网络(比如手机热点)重新运行代码测试
  • 用Postman直接调用API验证:构造一个GET请求到https://<你的区域>.api.cognitive.microsoft.com/vision/v3.2/describe,请求头添加Ocp-Apim-Subscription-Key: <你的密钥>,参数里指定图片URL,看是否能正常返回结果

5. 服务本身的延迟或异常(概率较低)

虽然你等了10分钟,但偶尔Azure服务的密钥生效可能有延迟,或者服务临时异常。可以尝试:

  • 重启你的Computer Vision服务(在Azure门户的服务概览页点击“重启”按钮)
  • 等待一段时间后再测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:59:00