无法附加到SQL Server以调试SQLCLR存储过程
我想在SQL Server中调试SQLCLR存储过程。 我一直在尝试在VS2015社区和最近安装的VS2017社区版本中调试SP,但没有成功。 我很确定问题在于附加到SQL Server,但是我已经完成了我在网上提到的所有内容,但无济于事。
在SQL Server Express LocalDB中创建数据库项目时,一切正常。 如果我更改连接字符串以使用我的Developer Edition SQL Server,那么我会收到错误。 我做了以下事情:
- 我创建了一个新的数据库。 我是服务器的唯一用户,它驻留在我用于Visual Studio的同一桌面计算机上。
-
在Visual Studio中,我使用一种简单的方法创建了一个简单的数据库项目,以便将一些文本发送到输出管道。
[Microsoft.SqlServer.Server.SqlProcedure] public static void mytest () { SqlContext.Pipe.Send("in clr Craig1"); }
- 我在项目属性中编辑了目标连接字符串以连接到新数据库,并在按下连接按钮时成功建立连接。 连接字符串为我使用Windows身份validation,使用与数据库所有者相同的用户。
- 我构建并部署了解决方案并检查了SQL对象资源管理器以确保部署了SP。 它是。
- 我选择了服务器,并使用右键单击选择“允许SQL / CLR调试”。 我再次检查它以确保它实际设置。
- 我选择了存储过程并右键单击,选择“Debug Procedure …”
- 显示了调试脚本。 我走到线上执行SP,然后按F11进入。此时我看到以下内容:
- 我按下附件并显示以下错误:
此后,该过程执行并执行管道function,但它不允许我进行附件和调试。
我做错了什么想法? 谢谢克雷格
您可能只需要使用“以管理员身份运行”启动Visual Studio。 我不相信在运行Windows 8时我需要这样做,但我现在正在运行Windows 10,并且肯定需要“以管理员身份运行”。 我猜你不能以其他方式附加到别人的进程(我的Developer Edition使用“SQL Server”的服务帐户运行,但LocalDB总是作为启动它的登录运行,通常是你自己)。 我没有测试过看看运行Developer Edition是否仍然需要“以管理员身份运行”,或者如何将Developer Edition作为“本地系统”运行会影响此行为。