SQL Server:无法启动调试器 - 数据为空

Gar*_*tes 7 sql-server debugging remote

我是一名使用 SQL Server 2014 实例开发 Web 应用程序的开发人员。我使用 Visual Studio 2010 sp1 进行开发。对于我目前正在处理的任务,我想使用 SQL Server 远程调试器来调试我们通过 ORM(实体框架)调用的非常大的存储过程。为此,我打开 SQL Server Management Studio 2014 并在新的查询窗口中键入以下内容:

EXEC [dbo].[MoveAllInvoiceStage]
Run Code Online (Sandbox Code Playgroud)

当我按下调试按钮时,我收到以下错误:

====================================

无法启动调试器

====================================

数据为空。不能对 Null 值调用此方法或属性。(系统.数据)

------------------------------ 节目地点:

在 System.Data.SqlTypes.SqlBinary.get_Value() 在 Microsoft.SqlServer.Management.UI.VSIntegration.DebugSession.DebugCallbacks.OnSqlInitializeDebuggingEvent(ISqlInitializeDebuggingEvent sqlInitializeDebuggingEvent) 在 Microsoft.SqlServer.Management.UI.VSIntegration.DebugSession.DebugCallbacks.Microsoft.VisualStudio .Debugger.Interop.IDebugEventCallback2.Event(IDebugEngine2 debugEngine, IDebugProcess2 debugProcess, IDebugProgram2 debugProgram, IDebugThread2 debugThread, IDebugEvent2 debugEvent, Guid& riidEvent, UInt32 属性)

接下来是一个对话框,上面写着:

无法启动程序“MSSQL:://<servername>/<databasename>/sys/=0”。

我正在使用具有 sysadmin 角色的 Windows 登录名连接到数据库服务器,并且所有必要的防火墙规则都已在服务器和我的 PC 上就位。我确保满足此处列出的要求。

当数据库服务器托管 SQL Server 2008 R2 实例时,远程调试器正在工作,但似乎在将实例升级到 SQL Server 2014 后停止工作。我仍然可以在本地 SQL Server 2014 实例(托管远程数据库)。只有远程调试会产生此问题。

我已经确认另一台 PC 上的另一位开发人员遇到了同样的问题,因此问题似乎出在服务器端。

我可以采取任何其他步骤来解决此问题吗?

小智 1

我遇到了这个确切的问题,并通过重新安装 Visual Studio 更新在我的本地开发计算机上解决了它。

我使用 2012 SQL Server 和 VS 2015.2。这都是本地主机 - 没有远程调试。

安装 SSMS 2016 RC3 后出现问题。在SSMS 2016中调试导致了上述错误。

SSMS 2014 运行得很好。

当我重新安装(修复)VS2015.2 更新后,问题就消失了。

每个 SSMS 版本都有一个它使用的 VS Independent Shell 版本。(SSMS 2016使用VS2015,SSMS 2014使用VS2012等)

SSMS 安装的 VS 独立 Shell 与完整 VS 安装之间似乎存在某种版本冲突。可能跟VS更新有关系吧。

无论如何,希望这对某人有帮助。