添加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系列的包。版本不匹配会导致底层依赖冲突,触发内存错误。
- 若项目基于.NET 7,只能使用
清理项目缓存与NuGet依赖
- 删除项目根目录下的
bin和obj文件夹; - 执行命令清除NuGet本地缓存:
dotnet nuget locals all --clear - 重新还原依赖并编译:
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
相关产品推荐
相关产品推荐

