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

Blazor调用MS Graph Me.GetAsync()后应用挂起问题求助

Microsoft Graph Me端点调用异常未捕获及包依赖问题解决

核心问题

调用Microsoft Graph的Me端点时,调试到await graphClient.Me.GetAsync()语句后,程序直接跳回调用方法,浏览器持续加载,Graph抛出的异常未被捕获。

已知前提

  • Azure应用注册中已配置User.Read权限
  • 传入的graphClient对象验证有效
  • 通过Postman调用相同接口可正常获取响应

相关代码

获取Graph用户信息的方法:

public async Task<User> GetGraphMeAsync(GraphServiceClient graphClient)
{
    try
    {
        var graphUser = await graphClient.Me.GetAsync().ConfigureAwait(false);
        if(graphUser != null)  
            return graphUser;

        else { return new User(); }
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message); 
    }
}

组件初始化时调用该方法:

protected override async Task OnInitializedAsync()
{
    var graphClient = GetGraphClient();
    var meData = await GetGraphMeAsync(graphClient).ConfigureAwait(false);
}

最初计划改用直接调用API替代SDK来规避问题。


问题排查与解决过程

  1. 包依赖错误出现
    按建议修改代码后,在AddAuthentication()链式调用中使用.AddMicrosoftGraph()时触发错误:Reference to type 'IAuthenticationProvider' claims it is defined in 'Microsoft.Graph.Core', but it could not be found。相关资料多指向Microsoft.Graph从4.x升级到5.0的版本兼容问题,但当前使用的是5.58版本。

  2. 移除包后问题未解决
    参考.NET 8环境下的类似问题讨论,移除了Microsoft.Graph和Microsoft.Graph.Core包,但错误仍然存在。

  3. 最终解决方式
    新建同类型项目模板可正常运行,于是移除当前项目中所有Identity和Graph相关的包引用,再逐一重新安装对应版本的包,问题得以解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:22:20