asp.net - 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()
吗?
解决方案
推荐阅读
- ruby-on-rails - 对 Rails MVC 感到困惑:为什么视图可以调用模型方法?
- python - numpy数组评估中的numpy数组何时不应该为真?
- reactjs - 验证反应选择,获取无法读取未定义的属性“长度”
- dns - 完全限定域名 vs 完全限定 DNS 名称 vs DNS 名称 vs DNS 域 vs DNS 域名?
- jquery - 如何在记事本+中仅保留所需的文本“之前和之后”?删除所有其他文本
- ios - Swift 将 [String: Any] 转换为 body 参数
- python - 终端中未定义错误名称
- javascript - Angular Reactive Forms,在模板中使用“myForm.get('myFormControl'')”是一种不好的做法吗?
- performance - 使用 minhash 算法的 Piriwse Jaccard 相似度
- ruby-on-rails - after_create 不更新 Post 属性