繁体   English   中英

无法附加到SQL Server以调试SQLCLR存储过程

[英]Can't attach to SQL Server to debug SQLCLR Stored Procedure

我想在SQL Server中调试SQLCLR存储过程。 我一直在尝试在VS2015社区和最近安装的VS2017社区版本中调试SP,但没有成功。 我很确定问题在于附加到SQL Server,但因为我已经完成了我在网上提到的所有内容,但无济于事。

在SQL Server Express LocalDB中创建数据库项目时,一切正常。 如果我更改连接字符串以使用我的Developer Edition SQL Server,那么我会收到错误。 我做了以下事情:

  1. 我创建了一个新的数据库。 我是服务器的唯一用户,它驻留在我用于Visual Studio的同一桌面计算机上。
  2. 在Visual Studio中,我使用一种简单的方法创建了一个简单的数据库项目,以便将一些文本发送到输出管道。

     [Microsoft.SqlServer.Server.SqlProcedure] public static void mytest () { SqlContext.Pipe.Send("in clr Craig1"); } 
  3. 我在项目属性中编辑了目标连接字符串以连接到新数据库,并在按下连接按钮时成功建立连接。 连接字符串为我使用Windows身份验证,使用与数据库所有者相同的用户。
  4. 我构建并部署了解决方案并检查了SQL对象资源管理器以确保部署了SP。 它是。
  5. 我选择了服务器,然后使用右键单击选择“允许SQL / CLR调试”。 我再次检查它以确保它实际设置。
  6. 我选择了存储过程并右键单击,选择“Debug Procedure ...”
  7. 显示调试脚本。 我走到线上执行SP,然后按F11进入。此时我看到以下内容: 在此输入图像描述
  8. 我按了附件,显示以下错误: 在此输入图像描述

此后,该过程执行并执行管道功能,但它不允许我进行附件和调试。

我做错了什么想法? 谢谢克雷格

您可能只需要使用“以管理员身份运行”启动Visual Studio。 我不相信在运行Windows 8时我需要这样做,但我现在正在运行Windows 10并且肯定需要“以管理员身份运行”。 我猜你不能以其他方式附加到别人的进程(我的Developer Edition使用“SQL Server”服务帐户运行,但是LocalDB总是作为启动它的登录运行,通常是你自己)。 我没有测试过看看运行Developer Edition是否仍然需要“以管理员身份运行”,或者如何将Developer Edition作为“本地系统”运行会影响此行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM