Azure部署ASP.NET Core 6应用失败:EF迁移及Facebook认证报错
Azure部署ASP.NET Core 6 HTTP 500错误及后续问题解决
问题梳理
部署ASP.NET Core 6应用到Azure后出现HTTP 500错误,过程中遇到两个关键问题:
- EF迁移命令执行失败,提示多项目冲突
- 解决迁移问题后,通过Application Insights发现Facebook认证配置缺失
分步解决
1. 修复EF迁移命令多项目错误
发布时执行dotnet ef dbcontext list --json报错当前工作目录中找到多个项目,请使用--project选项,即使只有Project.DataAccess包含迁移:
- 排查解决方案根目录,删除重复的
.csproject文件(这类冗余文件通常是误操作或VS自动生成导致的) - 若删除后仍有问题,直接在发布设置的EF迁移命令中指定项目:
dotnet ef dbcontext list --project Project.DataAccess --json
2. 解决Facebook认证AppId缺失异常
通过Application Insights捕获到Microsoft.AspNetCore.Authentication.Facebook.FacebookOptions.Validate抛出必须提供'AppId'选项(参数'AppId'):
- 登录Azure门户,进入对应App Service的配置 > 应用程序设置
- 添加以下两个配置项:
- 键:
Authentication:Facebook:AppId,值为你的Facebook应用ID - 键:
Authentication:Facebook:AppSecret,值为你的Facebook应用密钥
- 键:
- 确认代码中正确读取配置,示例:
builder.Services.AddAuthentication() .AddFacebook(options => { options.AppId = builder.Configuration["Authentication:Facebook:AppId"]; options.AppSecret = builder.Configuration["Authentication:Facebook:AppSecret"]; }); - 重新发布应用,验证HTTP 500是否消失
内容的提问来源于stack exchange,提问作者dimitri
相关产品推荐
相关产品推荐

