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

Microsoft Graph SDK v5如何设置超时?原v4方法已失效

在Microsoft Graph SDK v5中设置超时时间的方法

在v5版本的Microsoft Graph SDK里,HttpProvider.OverallTimeout确实已被移除,现在需要通过配置HttpClient的超时属性来实现,具体有几种常见的实现方式:

1. 直接创建带超时的HttpClient并传入GraphServiceClient

如果是手动实例化GraphServiceClient,可以先配置好HttpClient的超时,再将其传给客户端构造函数:

// 创建HttpClient并设置超时
var httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromSeconds(10);

// 传入HttpClient和身份验证提供者初始化GraphServiceClient
var graphClient = new GraphServiceClient(httpClient, yourAuthenticationProvider);

2. 在依赖注入场景下配置(ASP.NET Core)

如果项目使用依赖注入,可以在注册GraphServiceClient时,通过配置对应的HttpClient来设置超时:

services.AddMicrosoftGraph(options =>
{
    options.Scopes = new[] { "User.Read", "Mail.Read" }; // 根据需求设置权限
})
.AddHttpClient("GraphHttpClient", client =>
{
    client.Timeout = TimeSpan.FromSeconds(10);
});

3. 通过GraphServiceClientOptions配置

如果使用TokenCredential(比如ClientSecretCredential、UsernamePasswordCredential等)初始化客户端,可以借助GraphServiceClientOptions配置HttpClient的超时:

var clientOptions = new GraphServiceClientOptions
{
    HttpClientConfig = config =>
    {
        config.Timeout = TimeSpan.FromSeconds(10);
    }
};

var graphClient = new GraphServiceClient(yourTokenCredential, clientOptions);

需要注意的是,HttpClient.Timeout设置的是整个请求的总超时时间,涵盖连接、发送和接收数据的全部过程,和v4里的OverallTimeout作用一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:43:15