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

添加Google Authentication时出现Access Violation错误

解决Google身份验证添加后触发Access Violation错误的思路

针对添加Microsoft.AspNetCore.Authentication.Google后出现的0xc0000005内存访问错误,以下是可尝试的解决方向:

  • 确保包版本与.NET版本严格匹配
    Google身份验证包的主版本必须和项目的Target Framework一致:

    • 若项目基于.NET 7,只能使用7.x.x系列的包(如7.0.14、7.0.15),不能混用8.x版本;
    • 若项目基于.NET 8,必须使用8.x.x系列的包。版本不匹配会导致底层依赖冲突,触发内存错误。
  • 清理项目缓存与NuGet依赖

    1. 删除项目根目录下的bin和obj文件夹;
    2. 执行命令清除NuGet本地缓存:
      dotnet nuget locals all --clear
      
    3. 重新还原依赖并编译:
      dotnet restore
      dotnet build
      

    编译残留或缓存损坏是触发这类内存错误的常见原因。

  • 排查依赖冲突
    执行命令查看项目的所有依赖(包括间接依赖):

    dotnet list package --include-transitive
    

    重点检查Microsoft.AspNetCore.Authentication、System.Text.Json等基础库的版本,确保没有跨版本冲突。若发现冲突,可通过PackageReference的VersionOverride强制统一版本。

  • 启用原生调试定位错误点
    在Program.cs的最开头添加调试启动代码:

    System.Diagnostics.Debugger.Launch();
    

    或者在launchSettings.json中设置"nativeDebugging": true,启动调试后可以捕获到更详细的内存访问错误调用栈,直接定位到触发问题的代码或依赖库。

  • 验证配置的有效性
    暂时跳过配置绑定,硬编码从Google开发者控制台获取的真实有效的ClientId和ClientSecret,测试是否仍触发错误:

    builder.Services.AddAuthentication().AddGoogle(opt =>
    {
        opt.ClientId = "你的真实ClientId";
        opt.ClientSecret = "你的真实ClientSecret";
    });
    

    空值或非法格式的配置可能导致底层库的内存访问异常。

  • 更换包版本测试
    若当前使用的是7.0.14或8.0.3版本,尝试切换到同主版本的其他小版本(如7.0.0、7.0.15或8.0.0、8.0.4),排查是否是特定版本的包存在bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:52:27