远程调试Web服务时出现问题

时间:2011-05-25 09:49:13

标签: web-services visual-studio-2008 debugging remote-debugging w3wp

我在Google和StackOverflow上多次发现这个问题,但没有人回答我的情况。

我正在尝试远程调试Web服务,正确设置远程调试,我已部署最新版本(以及pdb文件)并将调试器附加到远程计算机上的w3wp进程。但是,一旦连接,我的所有断点都会被自动禁用(断点当前不会被命中。此文档没有加载任何符号)。有谁知道我做错了什么?

到目前为止,我已尝试过以下内容:

  • 在高级编译选项中将'生成调试信息'设置为'FULL'。
  • 在高级编译选项中将'Enable Optimisations'设置为'False'。
  • 在“模块”窗口中,符号状态为“已跳过加载符号”
    • 尝试手动加载符号
    • 尝试将符号设置中的符号文件位置更改为远程pdb文件
  • 在部署之前清理并重建解决方案
  • 我尝试在调试选项中取消选中“Just My Code”,这似乎可以解决问题,但是当我调用Web服务时,没有遇到任何断点。
  • This site看起来很有希望,但最终没有帮助
  • the pdb is on the remote machinë

3 个答案:

答案 0 :(得分:3)

经过多次搞乱后,我似乎已经实现了我的想法:

  • 在高级编译选项中
    • 将'生成调试信息'设置为'FULL'。
    • 将“启用优化”设置为“错误”。
  • 确保符号设置中的符号文件位置(调试 - 模块窗口)指向正确的位置
    • 我将远程位置和本地位置添加到.pdb位置
  • 在部署之前清理并重建解决方案

答案 1 :(得分:0)

我从来没有找到一种可靠的消防方式来实现这一目标。在尝试调试IIS中托管的WCF服务时,一遍又一遍地执行相同的过程(ReBuild,Deploy,Restart Site,Attach),我有时会加载符号,有时不加载。

在我的情况下,它归结为我是否在之前附加到进程有人在我部署后对网站提出请求(反过来导致IIS编译并执行其时髦的东西)。

我发现如果我按照这些步骤操作,它对我有用:

  1. 重建解决方案
  2. 部署到远程服务器
  3. 重新启动IIS - 我怀疑这是必要的,重新启动应用程序池就足够了我确定
  4. 找到工作进程并附加到它 - 断点将在此时被禁用,这很好
  5. 从网站索取内容 - 我只是使用浏览器做到了这一点。这导致IIS编译我的应用程序。通过在编译之前附加VS,我发现我正在加载符号(至少比以前更频繁)
  6. 也许同样的过程对你有用吗?

答案 2 :(得分:0)

在我的情况下,我将pdb部署到iis工作进程路径,所以一切都应该是好的,我真的不明白为什么“跳过加载符号”出现了。 我的印象真的不是那种情绪(没有理性的原因)。

所以我右键单击了我对调试感兴趣的dll(也可以选择多个文件), 并选择加载符号来自>符号路径

这导致他们被加载。

然后我可以调试它。谢谢!