将Visual Studio 2015 Update 2中的SQLServer项目与数据库SQL Server 2012进行比较时,更改方向时显示错误“目标不可用”或“源不可用”。
它曾经在几个月前正常工作。有什么解决方法吗?我找不到。
将Visual Studio 2015 Update 2中的SQLServer项目与数据库SQL Server 2012进行比较时,更改方向时显示错误“目标不可用”或“源不可用”。
它曾经在几个月前正常工作。有什么解决方法吗?我找不到。
Answers:
我发现使用username @ servername作为连接的用户名可以解决在Azure数据库上发生的问题。从历史上看,我以前没有进行过连接,但是突然停止,然后为我修复了它。
例如,当使用mylogin登录并连接到myserver.database.windows.net时,如果我改用mylogin@myserver.database.windows.net作为用户名,则不会出现“源不可用”的问题。
username@myserver.database.windows.net
(尽管我的客户端IP已在Azure Portal中列出,但我仍无休止地收到有关Azure SQL防火墙的提示)。当我将其更改为username@myserver
(不带database.windows.net
)时,它又可以工作了。奇怪的。
当我使用SQL Server身份验证但不保存密码时,在Visual Studio 2017中收到此错误。我已经使用Visual Studio 15.6.3和SQL Server 12.0.5000.0测试了这些步骤
这可以解决问题,但是下次我重新启动Visual Studio时,问题会再次出现。
如果您要解决此错误,请按以下说明重现此错误。
在这里尝试了一切之后,这对我有用:
关闭VS实例。
删除中的已保存连接密钥
HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0 \ ConnectionMruList
ConnectionMruList
注册表项甚至不存在。有人知道它被搬到哪里吗?
我在这里与其他答案有不同的结果。我正在使用另一个开发人员放在一起的保存比较文件。这是一个独立的SQL Server,而不是一个Azure数据库。比较有时可能起作用,而其他则不起作用(给出目标不可用错误)。在我的情况下,保存的比较仅使用服务器名称而不使用FQDN。当我更改为FQDN时,它对我有用。我不确定问题是否还会再次出现,但我想我会添加此信息,以防其他情况有用。
尽管此页面上的某些解决方案有时对我有用,但并非始终如此。但是我所描述的这种方法在大多数情况下对我有用
当您指定服务器名称时,请指定协议和端口
服务器名称:tcp:my-server-name,1443
我的服务器名称是Azure BTW
打开先前保存的.scmp文件时,出现此错误,该文件在最初创建时已成功运行。
该问题是由保存的连接字符串中缺少密码引起的。源使用集成身份验证,因此VS对此没有抱怨。
再次选择目标连接没有帮助,可能是因为VS使用了缓存的连接字符串。
我通过将Password
参数添加到文件中的连接字符串中解决了该问题。在两个位置指定了目标连接字符串(如下所示的XPath):
/SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
/SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']
完成这些编辑后,我重新打开了.scmp文件,比较成功进行了。
我在2015年的Visual Studio Professional版本中尝试过,在进行SQL数据比较时遇到了此问题,当我使用主机名而不是数据库的IP地址时,它对我有用。希望这能解决这个问题。
当用户没有执行架构比较操作所需的权限时出现相同的问题https://msdn.microsoft.com/zh-cn/library/jj889462(v=vs.103).aspx
我指的是通过IP的SQL Server,给了我这个问题。我通过其DNS名称引用它,问题已解决!
不知道为什么!但是,它像这样工作:)