Function App 1未执行DefaultAzureCredential.GetToken问题求助
问题排查与解决方案:Function App 托管身份认证SQL失败(未触发DefaultAzureCredential.GetToken)
核心问题
Function App 1在执行Start ConfigureServices后未触发DefaultAzureCredential.GetToken步骤,导致无法通过托管身份认证SQL;Function App 2与前者环境、配置、代码完全一致但运行正常。Function App 1此前基于.NET Framework 6.0,已通过命令Set-AzWebApp -NetFrameworkVersion v4.8 -Name $App -ResourceGroupName $ResoureGroup降级至4.8并重启,但问题依旧。
排查思路
1. 验证Function Runtime实际生效版本
- 登录Function App 1的Kudu控制台,查看
D:\home\site\wwwroot\bin下Microsoft.Azure.WebJobs.Host.dll的版本,确认Runtime ~4是否正确加载(需匹配.NET Framework 4.8对应版本) - 在Kudu的
Environment页面,检查FUNCTIONS_EXTENSION_VERSION环境变量是否明确设置为~4,避免自动升级导致版本不一致
2. 检查托管身份的运行时上下文
- 在Function App 1中添加测试代码,直接调用
DefaultAzureCredential.GetToken并输出日志,验证是否能正常获取Token:
若失败则捕获异常信息,排查身份是否被正确注入var credential = new DefaultAzureCredential(); var token = await credential.GetTokenAsync(new TokenRequestContext(new[] { "https://database.windows.net/.default" })); log.LogInformation($"Token obtained: {token.Token.Substring(0, 10)}..."); - 确认Function App 1的系统分配托管身份已启用,且在SQL数据库的Azure AD用户/角色配置与Function App 2完全一致
3. 清理.NET版本降级后的残留配置
- 检查Function App 1的
web.config文件,确认httpRuntime的targetFramework为4.8,无.NET 6相关残留配置:<system.web> <httpRuntime targetFramework="4.8" /> </system.web> - 在Kudu控制台清理
D:\home\site\wwwroot下的旧部署文件,重新部署相同制品,避免旧.NET 6依赖文件干扰
4. 排查App Service Plan环境差异
- 对比ASP1和ASP2的
WEBSITE_LOAD_USER_PROFILE环境变量设置,若ASP1为false可能影响身份认证组件加载,建议设为true后重启Function App - 在Kudu的
DebugConsole执行whoami命令,确认ASP1与ASP2的运行身份是否一致,排查沙箱限制差异
5. 启用详细日志定位问题
- 在Function App 1的
Diagnostics settings中开启FunctionAppLogs并设置日志级别为Verbose,查看ConfigureServices阶段的详细日志,确认是否有组件加载失败或异常 - 检查
Application Insights中的依赖跟踪,查找DefaultAzureCredential相关的错误日志
解决方案建议
- 强制锁定Runtime版本:通过Azure门户手动设置Function App 1的
FUNCTIONS_EXTENSION_VERSION为~4,重启应用避免自动升级导致版本不匹配 - 重置托管身份:先禁用再重新启用Function App 1的系统分配托管身份,重新配置SQL数据库的Azure AD权限,确保身份上下文正确注入
- 清理部署缓存:在Kudu控制台执行
del D:\home\site\wwwroot\* /s /q清空旧文件后重新部署制品,消除旧版本依赖残留 - 调整ASP配置:将ASP1的
WEBSITE_LOAD_USER_PROFILE设为true,重启Function App确保身份认证组件正常加载
内容的提问来源于stack exchange,提问作者ATY
相关产品推荐
相关产品推荐

