将 EF6.2 与 .NET Framework 4.7.2 一起使用时出现 GetADALAccessToken 超时异常

Jiale Xue - MSFT 46,456 信誉分 Microsoft 供应商
2024-06-06T07:37:17.3633333+00:00

我有一个 .NET Framework 4.7.2 Web 应用,它在 2012R2 服务器上使用 EF6.2 (实体框架) 连接到本地 SQL 服务器,没有任何问题。现在,我正在尝试将同一应用从 Azure VM(2019 服务器)连接到 Azure SQL MI 数据库,并收到与 ADAL 相关的错误。具有 Azure AD 密码连接字符串的控制台应用程序在同一台计算机上工作正常。此外,EF 应用在 2012 服务器上运行良好,问题是 2019 Azure 服务器 VM 上的 EF 版本应用存在问题。非常感谢任何解决此问题的指示。

这是连接字符串:

<add name=“MyEntities” connectionString=“metadata=res:///EntityFramework.XXX.csdl|res:///EntityFramework.XXXX.ssdl|res://*/EntityFramework.XXX.msl;provider=System.Data.SqlClient;提供程序连接字符串='数据源=XXXX.XXXX.database.windows.net;初始目录=testDB;persist security info=True;user id=已删除的电子邮件地址;password=XXXX;authentication=“Active Directory 密码”;MultipleActiveResultSets=True;App=EntityFramework'“ providerName=”System.Data.EntityClient“ />

这是错误:

InnerException:System.AggregateException:发生一个或多个错误。---> System.AggregateException:发生一个或多个错误。---> AdalException:请求超时。在 ADALNativeWrapper.ADALGetAccessToken ... 在 XXXXX\source\repos\SampleEF\DataObjects\EntityFramework\XXXX.cs:第 19 行

Note:此问题总结整理于: GetADALAccessToken timeout exception when using EF6.2 with .NET framework 4.7.2

.NET
.NET
基于 .NET 软件框架的 Microsoft 技术。
62 个问题
.NET 运行时
.NET 运行时
.NET: 基于 .NET 软件框架的 Microsoft 技术。运行时: 运行未编译为机器语言的应用所需的环境。
54 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
    2024-06-06T09:09:05.32+00:00

    我了解你在 Azure VM 上的 Entity Framework 应用中看到 Adal 超时错误,并收到 InnerException:

    AdalException:请求已超时。在 ADALNativeWrapper.ADALGetAccessToken

    我不确定你是否已经看过此问题的疑难解答文档,但代理或防火墙阻止了对 Azure Active Directory 的访问,经常会出现此错误。

    若要解决此问题,请尝试以下步骤:

    1) 除了传出端口 1433 之外,还可以打开代理或防火墙以获取其他 URL 或 IP 范围。Azure AD 连接疑难解答中记录了整个范围

    2) 确保代理服务器已打开所需的 URL

    3) 打开 *.windows.net

    4) 确保满足中记录的最低连接要求。

    5) 升级到 ADAL 6.0。1

    还值得注意的是,ADAL 支持将在 12 月取消,因此建议迁移到 MSAL。

    如果有帮助,请告诉我。


    如果回复有帮助,请点击“接受答案”并点赞。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。