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

Visual Studio 2022本地配置DefaultAzureCredential及修改NetworkTimeout方法

解决Azure函数本地开发认证超时问题

问题根源

本地开发环境没有Azure托管标识服务,你的代码指定了ManagedIdentityClientId,导致DefaultAzureCredential优先尝试调用托管标识的元数据接口(http://metadata/identity/...),但本地无法访问这个接口,最终触发1秒超时。

解决方案

1. 调整认证配置适配本地环境

修改DefaultAzureCredentialOptions,在开发环境下跳过托管标识认证,同时自定义请求超时时间,让DefaultAzureCredential自动尝试本地可用的认证方式(比如Visual Studio登录账号、Azure CLI登录账号):

// Setup a listener to monitor logged events. It is needed to monitor actions by DefaultAzureCredential.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();

_logger.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

string userAssignedClientId = "REDACTED";
var isDevelopment = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT") == "Development";

var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
    ManagedIdentityClientId = userAssignedClientId,
    CredentialProcessTimeout = TimeSpan.FromSeconds(10),
    // 本地开发时排除托管标识,避免无效请求超时
    ExcludeManagedIdentityCredential = isDevelopment,
    // 自定义HttpClient超时,覆盖默认1秒限制
    HttpClientFactory = () =>
    {
        var httpClient = new HttpClient();
        httpClient.Timeout = TimeSpan.FromSeconds(10);
        return httpClient;
    }
});

var accessToken = credential.GetToken(new TokenRequestContext(new[] { "https://analysis.windows.net/powerbi/api" }));
string accessTokenString = accessToken.Token;

2. 完成本地身份验证准备

确保你已通过以下方式之一完成本地身份验证:

  • 在Visual Studio 2022中登录拥有Power BI API访问权限的Azure账号(路径:工具 -> 选项 -> Azure服务认证)
  • 安装Azure CLI并执行az login命令登录对应账号

补充说明

  • ClientOptions.Retry.NetworkTimeout属于底层Azure.Core的配置,无法直接在DefaultAzureCredentialOptions中修改,但通过HttpClientFactory自定义HttpClient的超时时间可以达到同样效果。
  • 云端部署时,AZURE_FUNCTIONS_ENVIRONMENT会自动设置为Production,此时不会排除托管标识认证,代码会正常使用你指定的用户分配托管标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:54:52