2

我在Google和StackOverflow上多次发现此问题,但没有回答我的情况。远程调试Web服务时的问题

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

我已经试过到目前为止以下内容:在高级编译选项

  • 集“生成调试信息”到“满”。
  • 在高级编译选项中将'Enable Optimisations'设置为'False'。
  • 在模块窗口中的符号状态是“跳过加载符号
    • 试图加载符号手动
    • 试图改变在符号设置符号文件位置到远程PDB文件
  • 清洗和重建部署前的解决方案
  • 我尝试在调试选项中取消选中“Just My Code”,这似乎解决了问题,但是当我调用Web服务时,没有发现中断点。
  • This site看起来前途无量,但最终
  • the pdb is on the remote machinË

回答

3

多乱搞后,我似乎已经achived我想要的东西:

  • 先进的编译选项
    • 集“生成调试信息”到“满”。
    • 将'启用优化'设置为'错误'。
  • 确保符号文件的位置 - 在符号设置(调试模块窗口)指向正确的位置
    • 我增加了远程位置和本地位置到.PDB位置
  • 清洗重建部署
+0

禁用优化真的解决了我的问题! (VS2013) – Edi 2015-01-01 10:12:55

0

我从来没有发现一个确保消防方式来得到这个工作没有帮助。尝试调试托管在IIS中的WCF服务时,反复执行相同的过程(重新构建,部署,重新启动站点,附加)我有时会加载符号,有时候不会。

在我而言,它来到了我是否连接到进程之前有人提出对站点的请求我已经部署后(反过来导致IIS来编译和做它的时髦的东西)。

我发现,如果我按照这些步骤,它为我工作:

  1. 重建解决方案
  2. 部署到远程服务器
  3. 重新启动IIS - 我怀疑这是必要的,重新启动应用程序池就足够了我相信
  4. 找到工作进程并附加到它 - 断点将被禁用在这一点上,那很好
  5. 请求网站上的东西 - 我这样做只是使用浏览器。这导致IIS编译我的应用程序。通过在编译之前附加VS,我发现我正在加载符号(至少比以前更频繁)

也许同样的过程对你有用吗?

+0

w3wp进程不存在以附加调试器,直到我从站点请求或在浏览器中加载它(这不是WCF,因此它在这方面的工作原理可能不同)。 – 2011-05-25 10:39:39

+0

也许,或许我已经忘记了我已经遵循的步骤...... ^^另外一件显而易见的事情是,您是否使用调试配置来编译Web项目?它经常被错过,但是如果部署的项目是使用发布配置进行编译的,那么在附加 – Smudge202 2011-05-25 12:03:19

+0

后我将无法捕捉到中断点。我现在已经解决了这个问题。 – 2011-05-25 16:05:01

0

前溶液对我来说,我不得不部署到IIS工作进程路径PDB的,所以一切都应该是很好的,我真的不明白为什么“Skipp编辑加载符号“出现。 我真的觉得它没有心情(没有理性的原因)。

所以我右键点击该dll我很感兴趣,调试(可以选择多个文件也), 和选择加载符号从>符号路径

,并导致它们被加载。

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