2010-12-09 51 views
3

经过数小时的战斗和搜索结果,我绝望地把头发甩出去。我试图调试一个简单的CLR方法。安装程序:Visual Studio 2010,SQL Server 2008 R2 Express,Vista Business SP2。我是域用户,但是本机上是本地管理员,并且是本地SQL Server实例上的系统管理员。我创建了一个新的VS数据库项目,将它指向我的数据库连接字符串(之前使用过这个数据库),然后它问我是否要为该连接启用调试器,我回答是。如何使用VS2010执行SQL Server 2k8 CLR调试

我证实项目部署良好(可以看到程序集和它的过程出现在SQL Server Management Studio中),并且我可以在SSMS中调用它。然后,我在我的数据库项目中将EXEC代码添加到Test.sql脚本中,并将其标记为默认调试脚本。然后我在Test.sql和CLR代码中都设置了一个断点。

但是,当我按下F5我得到的是下面的输出:

Canceled by user. 
Auto-attach to process '[2144] sqlservr.exe' on machine 'DAWID-PC' succeeded. 
The thread 'dawid-pc\sqlexpress [54]' (0x13c4) has exited with code 0 (0x0). 
The thread 'dawid-pc\sqlexpress [54]' (0x13c4) has exited with code 0 (0x0). 
The thread 'dawid-pc\sqlexpress [56]' (0x109c) has exited with code 0 (0x0). 
The thread 'dawid-pc\sqlexpress [56]' (0x109c) has exited with code 0 (0x0). 
The program '[2144] sqlservr.exe: dawid-pc\sqlexpress' has exited with code 0 (0x0). 

我的调试会话结束时就在那里。

我有c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe正在运行;每次我在Visual Studio中打F5时,都会看到一条消息,说明MyDomain\MyUsername connected.。我的电脑没有运行防火墙,并且没有安装防病毒软件。

你有什么想法如何使它工作?我的真正目标是远程调试,但我认为我应该先尝试本地化,并在进一步冒险之前消除任何设置怪癖...

回答

0

我也有同样的问题。您的项目配置为.NET 3/3.5似乎是一个问题。只要我将我的平台更改为.NET 2.0,我就可以打破我的突破点。我不能等到SQL Server CLR类型中有.NET 4集成。

0

我最近遇到这个错误使用VS2010和SQL 2008 R2(都安装在本地)。我关掉了防火墙等,仍然没有运气。最终我偶然发现了一个看起来像是SQL Server内存问题的东西。 SQL日志文件显示了很多AppDomain X卸载的消息。无论如何,带领我到这里:http://www.johnsansom.com/sql-server-memory-configuration-determining-memtoleave-settings/#axzz1SZM5nqyF

和更改我的SQL Server -g启动选项后,-g384,嘿presto调试工作!

我不是SQL DBA,所以如果他们有任何MemToLeave设置的知识,也许有人可以跳进去,并添加到此。

夏兰

0
  1. 在服务器资源管理器中删除允许SQL Server调试,但设置应用程序调试
  2. 开始调试,VS会要求设置允许SQL Server调试。

然后它会工作。

阿巴斯Shojaee

0

源设置你的断点..,构建和部署(SQL Server的项目,将建立并在运行部署,但不会打你设置任何破发点!) 在服务器资源管理器中,确保您已启用应用程序调试并允许SQL/CLR调试。

在服务器资源管理器中导航到您要调试的clr存储过程/函数, 右键单击并进入(Alt + F5)。在'附加安全警告'后,您将看到在输出窗口,接下来是这个,中断点会被击中,你可以继续平常的调试任务。