【问题标题】:Can't attach to SQL Server to debug SQLCLR Stored Procedure无法附加到 SQL Server 以调试 SQLCLR 存储过程
【发布时间】:2017-08-04 18:16:05
【问题描述】:

我想在 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. 我在项目属性中编辑了Target Connection String来连接新的数据库,按下连接按钮时成功连接。连接字符串为我使用了 Windows 身份验证,用户与数据库所有者相同。
  4. 我构建并部署了解决方案,并检查了 SQL 对象资源管理器以确保部署了 SP。是的。
  5. 我选择了服务器,并使用右键单击选择了“允许 SQL/CLR 调试”。我再次检查以确保它确实已设置。
  6. 我选择了存储过程,然后右键单击,选择了“Debug Procedure...”
  7. 已显示调试脚本。我走到那一行来执行 SP,然后按 F11 进入。此时我看到了以下内容:
  8. 我按下附加按钮并显示以下错误:

此后,程序执行并执行管道功能,但它不让我做附件和调试。

对我做错了什么有任何想法吗? 谢谢 克雷格

【问题讨论】:

标签: c# sql-server visual-studio sqlclr


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2014-05-27
    • 2020-11-19
    • 1970-01-01
    相关资源
    最近更新 更多