Asp.net AddDbContextPool不适用于Azure SQL的Azure Ad身份验证
我按照MS文档为Azure SQL身份验证配置Azure AD托管标识,这涉及调整连接字符串(删除用户名/密码)并将这些代码添加到DbContext的构造函数:Asp.net AddDbContextPool不适用于Azure SQL的Azure Ad身份验证,asp.net,entity-framework,asp.net-core,entity-framework-core,azure-managed-identity,Asp.net,Entity Framework,Asp.net Core,Entity Framework Core,Azure Managed Identity,我按照MS文档为Azure SQL身份验证配置Azure AD托管标识,这涉及调整连接字符串(删除用户名/密码)并将这些代码添加到DbContext的构造函数: var conn = (Microsoft.Data.SqlClient.SqlConnection)Database.GetDbConnection(); conn.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvid
var conn = (Microsoft.Data.SqlClient.SqlConnection)Database.GetDbConnection();
conn.AccessToken = (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;
它可以与Startup.cs中的标准services.AddDbContext()
方法配合使用。但只要我使用services.AddDbContextPool()
来提高性能,身份验证就会中断,并出现以下错误:
SqlException:用户“”的登录失败。
Microsoft.Data.ProviderBase.DbConnectionPool.CheckPoolBlockingPeriod(异常e)
这是AddDbContextPool()
的已知限制吗