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

我想在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身份validation,使用与数据库所有者相同的用户。
  4. 我构建并部署了解决方案并检查了SQL对象资源管理器以确保部署了SP。 它是。
  5. 我选择了服务器,并使用右键单击选择“允许SQL / CLR调试”。 我再次检查它以确保它实际设置。
  6. 我选择了存储过程并右键单击,选择“Debug Procedure …”
  7. 显示了调试脚本。 我走到线上执行SP,然后按F11进入。此时我看到以下内容: 在此处输入图像描述
  8. 我按下附件并显示以下错误: 在此处输入图像描述

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

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

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