供应商有一个我需要连接的 SQL azure 数据库。 他们建议我需要 oledb 19 驱动程序,我已经安装了。
我可以从 Visual Studio 和 SSMS v17.9.1 进行连接。 但是,我无法通过 UDL 文件、SSMS 19.1 或 azure data studio 进行连接。
这让我认为这可能是 32 位/64 位问题。 较旧的 SSMS 使用 32 位驱动程序,Visual Studio 也是如此,但 Azure Data Studio 和 UDL 都使用 64 位驱动程序。
我收到的错误如下:
与服务器成功建立连接,但在登录前握手期间发生错误。 (提供程序:TCP 提供程序,错误:0 - 指定的网络名称不再可用。)(Microsoft SQL Server,错误:64)
感谢任何有关如何解决此问题的建议。
通常,此错误与连接超时以及握手阶段发生的某些超时有关。当您连接到 Azure SQL 时,尝试连接到 Azure SQL 将超时设置为至少 30 秒,并确保对连接字符串进行加密并信任服务器证书:
该问题与 32 位驱动程序或 64 位驱动程序无关,例如,您可能会在 .NET 和 .Net SqlClient 数据提供程序(32 位和 64 位)中遇到相同的错误。这些工具 SSMS 和 Azure Data Studio 支持“Microsoft OLE DB Driver for SQL Server”(请参阅下一段中的链接)和Microsoft ODBC Driver 17 for SQL Server。尝试一下。
关于 UDL 连接,请确保您使用支持 TLS 1.2 和 Azure 身份验证的 MSOLEDBSQL 提供程序。