【问题标题】:How to debug a CLR Stored procedure in VS 2013如何在 VS 2013 中调试 CLR 存储过程
【发布时间】:2017-12-31 06:04:38
【问题描述】:

我尝试了不同的方法来完成这项工作,但没有任何效果。当我运行测试脚本时,VS 似乎忽略了 .cs 文件中的所有断点。我也在测试脚本中包含了一个断点,但它仍然没有调试。

这是我尝试过的来自 Microsoft https://msdn.microsoft.com/en-us/library/ms165051(v=vs.100).aspx 的指南,但是当我右键单击我的脚本文件时,我没有“设置为默认调试脚本”选项。

【问题讨论】:

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


【解决方案1】:

您可能还需要:

  1. 以管理员身份运行 Visual Studio
  2. 打开默认情况下被 Windows 防火墙阻止的其他端口
  3. 将项目设置为启动项目。
  4. 在 Visual Studio 中:转到“SQL Server 对象资源管理器”,在“项目属性”的“调试”选项卡中右键单击要部署到的实例,然后选择“允许 SQL/CLR 调试”,然后单击弹出对话框中的“是”按钮。
  5. 如果您希望断点工作,则不能在“项目属性”的“SQLCLR 构建”选项卡中选中“优化代码”选项。默认情况下,未选中“调试”配置并选中“发布”配置。配置本身并不重要,只要不选中该选项即可。如果是,您需要取消选中它并重新发布,并确保它确实更新了程序集(有时可能不会,因为程序集没有其他更改)。
  6. 在 Visual Studio 中:从“SQL Server 对象资源管理器”打开一个新查询,并在附加到“执行”>“按钮的下拉列表中,选择“使用调试器执行”(这也是 ALT + F5)。有时断点不是第一次被捕获,所以只需再次使用调试器执行即可。
  7. 请注意:连接到 SQL Server 进行调试的登录名必须是sysadmin。

可能还有一些额外的东西,但我很确定你不需要默认的调试脚本,即使一些关于这个的帖子说你需要。

请在此处查看我的答案以及问题中 cmets 中的链接:

Can't attach to SQL Server to debug SQLCLR Stored Procedure

【讨论】:

  • 感谢您的回复。我尝试了你提到的所有方法,但我仍然面临同样的问题。
  • @RukshanHassim,看到这个分享了详细步骤的帖子:stackoverflow.com/questions/14180009/…,看来你参考的是旧的VS2010文档。
  • @RukshanHassim 我刚刚添加了第 4、5 和 6 步。请确保您也遵循这些并重试。如果我完成所有 6 个步骤,那么它就可以工作(我使用的是 VS 2015,如果这很重要,尽管我似乎记得这些步骤在 VS 2012 和/或 VS 2013 上有效)。
【解决方案2】:

如果您在同一台计算机上安装了 Visual Studio 和 SQL Server,只需将 sqlservr.exe 附加到 Visual Studio 调试器,然后执行存储过程。它应该命中 SP 方法。

【讨论】:

    猜你喜欢
    • 2015-12-29
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多