我们正在将本地数据库迁移到 Azure。我们的应用程序使用实体框架 6。安装 ADALSQL.dll 后,使用 System.Data.SqlClient 使用身份验证 Microsoft Active Directory 密码一切正常。当您访问异常消息中引用的站点时,如果未安装此 dll,该站点将响应 404。
遇到意外错误。
System.Data.Entity.Core.EntityException:底层提供程序在打开时失败。
System.Data.SqlClient.SqlException: 无法加载 adalsql.dll (Authentication=ActiveDirectoryPassword)。错误代码:0x2。有关更多信息,请参阅http://go.microsoft.com/fwlink/?LinkID=513072 http://go.microsoft.com/fwlink/?LinkID=513072
几周前它就可用了。
随着 ADALSQL 被弃用,我们正在尝试让应用程序使用Microsoft.Data.SQLClient
。我尝试过以下方法:
- 添加了 Nuget 包
Microsoft.Data.SqlClient
到项目
- 添加以下内容到
app.config
file
<system.data>
<DbProviderFactories>
<add name="Microsoft SqlClient Data Provider"
invariant="Microsoft.Data.SqlClient"
description="Microsoft SqlClient Data Provider for SQL Server"
type="Microsoft.Data.SqlClient.SqlClientFactory, Microsoft.Data.SqlClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5" />
</DbProviderFactories>
</system.data>
- 更新了提供者部分
EntityFramework
的部分app.config
文件到以下
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<!--<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />-->
<provider invariantName="Microsoft.Data.SqlClient"
type="Microsoft.Data.SqlClient.SqlClientFactory, Microsoft.Data.SqlClient, Version=5.0.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5" />
</providers>
</entityFramework>
- 更新了连接字符串以引用提供程序
Microsoft.Data.SqlClient
<add name="B2BEntities"
connectionString="metadata=res://*/Models.B2B.csdl|res://*/Models.B2B.ssdl|res://*/Models.B2B.msl;provider=Microsoft.Data.SqlClient;provider connection string='data source=
运行应用程序时抛出以下异常:
实体框架提供程序类型“Microsoft.Data.SqlClient.SqlClientFactory、Microsoft.Data.SqlClient、Version=5.0.0.0、Culture=neutral、PublicKeyToken=23ec7fc2d6eaa4a5”的“Instance”成员未返回从“System”继承的对象.Data.Entity.Core.Common.DbProviderServices'。实体框架提供程序必须从此类继承,并且“Instance”成员必须返回提供程序的单例实例。这可能是因为提供商不支持 Entity Framework 6 或更高版本;看http://go.microsoft.com/fwlink/?LinkId=260882 http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。
任何有关如何使其工作的指导将不胜感激。