无法进入远程 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 x64
在Windows Server 2008 x64
上运行,客户端在Windows 7 RTM x86
上运行。两者都已加入域。
我在域管理员用户下同时启动 Visual Studio 2008
和 SQL Server Management Studio 2008
。此帐户是SQL Server
上的群组sysadmin
的成员。
服务器在端口135-139
和1433-1434
上对TCP
和UDP
有防火墙例外。
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无法远程连接的可能原因之一