Sql 连接到 Azure 时服务器数据工具数据比较失败

Sql Server Data Tools Data Comparison fails when connecting to Azure

当使用 Sql 服务器数据工具数据比较工具时,我们中的一些人无法在源是 Azure 数据库时进行比较。

我们得到的错误如下:

---------------------------
Microsoft Visual Studio
---------------------------
Data information could not be retrieved because of the following error:

Value cannot be null.

Parameter name: conn

Value cannot be null.

Parameter name: conn

连接测试正常。我试过创建一个新连接。作为旁注,如果我将数据与非 Azure 源进行比较,一切正常。

SQL 服务器数据工具版本为 12.0.50512.0

我们可以使用 SSMS 毫无问题地访问服务器。

没有这样的限制。参考 - https://msdn.microsoft.com/en-us/hh272693(v=vs.103).aspx

检查是否为此连接打开了防火墙规则。如果不是,则将当前客户端 IP 添加到 SQL Azure DB

允许的 IP 地址

原来是权限问题,但我能够使用 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/740e3ed8-bb05-48f7-8ea6-721eca071198/publish-to-azure-db-v12-failing-value-cannot-be-null-parameter-name-conn?forum=ssdt

中提供的详细信息对其进行诊断

正在收集 SSDT 的事件日志

  • 以管理员身份打开一个新的命令提示符。
  • 运行以下命令
    • logman 创建跟踪 -n DacFxDebug -p "Microsoft-SQLServerDataTools" 0x800 -o "%LOCALAPPDATA%\DacFxDebug.etl" -ets
    • logman 创建跟踪 -n SSDTDebug -p "Microsoft-SQLServerDataToolsVS" 0x800 -o “%LOCALAPPDATA%\SSDTDebug.etl”-ets
  • 运行 无论 SSDT 中的 target/issue 场景是什么。返回命令提示符并 运行 以下命令
    • logman 停止 DacFxDebug -ets
    • logman 停止 SSDTDebug -ets
  • 生成的 ETL 文件将位于 %LOCALAPPDATA%\SSDTDebug.etl & %LOCALAPPDATA%\DacFxDebug.etl 并且可以使用 Windows 资源管理器进行导航。

我发现如果我之前已经比较过本地数据库(在同一会话中),那么请尝试比较 Azure 数据库。我发现有一些奇怪的锁阻止登录 Azure SQL 数据库。

关闭 Visual Studio 并重新打开它应该连接正常。