无法进入远程 SQL Server 2008 上的存储过程

Posted

技术标签:

【中文标题】无法进入远程 SQL Server 2008 上的存储过程【英文标题】:Can't step into stored procedure on remote SQL Server 2008 【发布时间】:2011-01-31 12:27:32 【问题描述】:

我在虚拟Windows Server 2008 x64 上安装了域控制器。

SQL Server 2008 Express x64Windows Server 2008 x64 上运行,客户端在Windows 7 RTM x86 上运行。两者都已加入域。

我在域管理员用户下同时启动 Visual Studio 2008SQL Server Management Studio 2008。此帐户是SQL Server 上的群组sysadmin 的成员。

服务器在端口135-1391433-1434 上对TCPUDP 有防火墙例外。

Visual Studio 2008 Remote Debugger 服务在服务器上启动,Domain Admins 组被允许调试。

远程 DCOM 工作:我可以连接到远程服务器并列出它的进程,可以切换到仅显示托管代码等。

当我开始调试 SMS 中的查询时,我收到此错误:

无法启动调试器错误 HRESULT E_FAIL 已从调用中返回 到 COM 组件。 (mscorlib) 程序 地点:

在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)

在 Microsoft.SqlServer.Management.UI.VSIntegration.DebugSession.DebugCallbacks.OnSqlInitializeDebuggingEvent(ISqlInitializeDebuggingEvent sqlInitializeDebuggingEvent)

在 Microsoft.SqlServer.Management.UI.VSIntegration.DebugSession.DebugCallbacks.Microsoft.VisualStudio.Debugger.Interop.IDebugEventCallback2.Event(IDebugEngine2 调试引擎,IDebugProcess2 调试进程,IDebugProgram2 调试程序,IDebugThread2 调试线程,IDebugEvent2 调试事件, Guid& riidEvent,UInt32 属性)

无法访问 SQL Server 调试界面。视觉 Studio 调试器无法连接到 远程计算机。防火墙可能是 阻止通过 DCOM 与 远程计算机。请看帮助 寻求帮助。

无法启动程序 MSSSQL://server.mydomain.local/master/sys/=0

当使用 VS 进入存储过程时,我得到了第一个:

HRESULT 异常:0x89710016

我该怎么办?

【问题讨论】:

我在 MSDN 上的帖子也没有得到答复 social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… 我一秒钟前偶然看到了这个帖子(认出了你的头像)-MSDN 现在有一个解决方案,打开文件共享。 @Jeremy:在上面的帖子还是其他帖子? 我已经厌倦了微软的“默认破坏”政策。 @Ian:你说的很对,尤其是在这种情况下 【参考方案1】:

一旦我在客户端和服务器上禁用了防火墙,它就可以工作了。

【讨论】:

是的,但不幸的是,在现实世界中,几乎不可能禁用服务器上的防火墙。【参考方案2】:

你能检查一下你是否满足这个article的要求吗?这个对我有用。

【讨论】:

感谢您的提示。我已经看过这篇文章并做了所有描述的事情——两台机器上都配置了防火墙 从您收到的错误消息来看,它看起来像是防火墙问题。您是否已将 sqlservr.exe 等添加到例外列表中?在客户端/服务器上都使用任何第三方防火墙? 阅读以下内容:sqlnewsgroups.net/group/microsoft.public.sqlserver.server/… 你做了以下事情吗?已经拥有 sysadmin 权限的用户必须执行以下命令:sp_addsrvrolemember 'Domain\Name', 'sysadmin' 我在服务器的防火墙上添加了 TCP 和 UDP 端口 1433,1434。客户端的防火墙已关闭。 VS/SMS 在域管理员用户下运行。他也是系统管理员。 SQL Server 在 NetworkSystem 下运行。我是否需要重新配置以在域用户下运行它?【参考方案3】:

您必须在数据库上启用远程调试。您可以运行以下命令来做到这一点。

%ProgramFiles%\Microsoft SQL Server\100\Shared\1033\rdbgsetup.exe

此外,请确保您可以在调试之前连接到远程 SQLServer,因为您的日志指向连接问题。

【讨论】:

我已经安装、启动和配置了 VS 2008 远程调试器。如何使用它设置数据库调试?正在创建连接,没有问题。 从 Visual Studio 中,使用服务器资源管理器连接数据库并扩展您想要调试的存储过程并放置断点。当您运行应用程序时,您将能够进入和调试存储过程。 我无法从 VS 的服务器资源管理器的上下文菜单中进入 SP 并出现相同的错误

以上是关于无法进入远程 SQL Server 2008 上的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008/2014无法远程连接的可能原因之一

win2003服务器装spl2008,打安全补丁后无法进入SQL Server Management Studio

SQL Server 2008 R2 开启远程连接

SQL Server2008如何连接远程的服务器

SQL Server 2008 开启数据库的远程连接

无法在远程系统上使用 Windows 身份验证连接到 ms sql server