Azure.Identity:ManagedIdentityCredential认证失败,请求排查方案
Azure Blob Storage客户端连接失败异常
相同代码在另一台机器可正常运行,本地运行时Blob Storage客户端抛出连接异常。已尝试执行az login,并在VS的tools->options中完成Azure服务认证登录,均未解决问题。
异常截图


错误详情
调用WINHTTP_CALLBACK_STATUS_REQUEST_ERROR时出现Error 12029,‘无法与服务器建立连接’。
启动操作 'ef3280b7-fc62-48e2-86d9-ecabccf48ff2' 期间发生主机错误。 [2024-10-09T13:05:29.301Z] Azure.Identity: ManagedIdentityCredential 认证失败:重试6次后失败。可在ClientOptions.Retry中调整重试设置,或通过配置ClientOptions.RetryPolicy中的自定义重试策略进行调整。(发送请求时发生错误。)×6 Azure.Core: 重试6次后失败。可在ClientOptions.Retry中调整重试设置,或通过配置ClientOptions.RetryPolicy中的自定义重试策略进行调整。(发送请求时发生错误。)×6。Azure.Core: 发送请求时发生错误。System.Private.CoreLib: 发送请求时发生错误。System.Private.CoreLib: 调用WINHTTP_CALLBACK_STATUS_REQUEST_ERROR时出现错误12029,'无法与服务器建立连接'。 值不能为 null。(参数 'provider')
解决建议
- 检查网络代理:WINHTTP_ERROR 12029属于网络连接问题,确认本地是否启用代理,代理是否允许访问Azure服务域名。可尝试临时关闭代理后重试,或在代码中配置Azure SDK的代理参数。
- 替换认证方式:本地开发场景下,Managed Identity Credential不适用,建议改用AzureCliCredential(因为已执行
az login),代码示例:var credential = new AzureCliCredential(); var blobClient = new BlobServiceClient(new Uri("your-blob-service-url"), credential); - 排查防火墙:本地防火墙或公司网络防火墙可能拦截了Azure服务请求,临时关闭防火墙测试是否恢复正常。
- 验证Azure CLI状态:执行
az account show确认当前登录账号有权限访问目标Blob Storage,且订阅选择正确。 - 检查代码配置:确认代码中没有错误的认证参数,本地环境是否缺少必要的环境变量(如使用服务主体时的AZURE_CLIENT_ID、AZURE_CLIENT_SECRET等)。
内容的提问来源于stack exchange,提问作者F sam
相关产品推荐
相关产品推荐

