首页 > 解决方案 > AddDbContextPool 不适用于 Azure SQL 的 Azure 广告身份验证

问题描述

我按照此处的MS 文档为 Azure SQL 身份验证配置 Azure AD 托管标识,这涉及调整连接字符串(删除用户名/密码)并将这些代码添加到 DbContext 的构造函数中:

var conn = (Microsoft.Data.SqlClient.SqlConnection)Database.GetDbConnection();
conn.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;

services.AddDbContext()它适用于 Startup.cs 中的标准方法。但是,一旦我使用services.AddDbContextPool()更高的性能,身份验证就会中断并出现以下错误:

SqlException:用户“”登录失败。Microsoft.Data.ProviderBase.DbConnectionPool.CheckPoolBlockingPeriod(异常 e)

这是已知的限制AddDbContextPool()吗?

标签: asp.netentity-frameworkasp.net-coreentity-framework-coreazure-managed-identity

解决方案


推荐阅读