【问题标题】:WCF remote debugging fails - no symbols loadedWCF 远程调试失败 - 未加载符号
【发布时间】:2010-11-03 10:59:13
【问题描述】:

我正在尝试在 IIS 6 上远程调试 wcf 服务。直到昨天它一直运行良好。现在断点没有被命中,并且警告消息说“没有为此文档加载任何符号”。我已经通过重新启动 iis 和应用程序池解决了这个问题,但它只工作了几天。现在我有同样的问题。我已经阅读了互联网上几乎所有关于此的建议,我检查了构建选项、GAC、ASP 临时文件夹。加载服务文件时,VS 正在写入我的 dll 已加载。但是当我查看 debug->modules 窗口时,它显示该模块尚未加载。调试时我仍然可以看到异常。现在我暂时使用Debug.WriteLn()进行调试,但是费时费力。任何帮助将不胜感激。

附:我在 PC 上使用 VS 2010、WinXp Sp3,在服务器上使用 Windows Server 2003。

[已更新] VS 2010 有补丁可以解决远程调试问题吗?

[更新] 我注意到 w3wp 进程类型现在是 x86,虽然我的服务之前被客户端调用过,它应该是托管类型。

【问题讨论】:

    标签: c# wcf debugging iis


    【解决方案1】:

    最后,我找到了解决方案。我将 WCF 输出文件复制到服务器上与我的电脑相同的位置。这很奇怪,但调试效果很好。

    【讨论】:

      【解决方案2】:

      这是你的答案,也是我遇到的问题:

      我注意到 w3wp 进程类型现在是 x86,虽然我的服务 之前被客户端调用过,应该是托管类型。

      通常,要让 w3wp.exe 进程实际显示在 附加到进程 调试对话框中,只需在本地浏览到 IIS 中的站点。这将启动该过程并确保它可供选择。

      但是,您必须浏览到使用与您要调试的 WCF 服务相同应用程序池类型的站点。如果您选择使用 32 位进程 (x86) 的应用程序池并将其附加到需要 x64 版本的 WCF 服务,则会显示结果“没有为此文档加载任何符号”并且断点将显示为“空心”红色圆圈。

      【讨论】:

        【解决方案3】:

        首先:请安装 IIS 7,非常推荐!

        第二:我猜每个人有时都会发生这种情况,使用选项(删除现有文件(选中),使用源代码(选中))再次部署服务,解决了问题。

        实际上,在我的情况下,这是唯一的解决方案

        问候,

        马扎尔·卡里米

        【讨论】:

        • 我总是删除现有文件以及清理 ASP 临时文件夹。 WCF 服务与源代码一起部署并处于调试模式。不幸的是,我无法安装 IIS 7,但调试已经好几个月了,直到出现该问题。
        • 尝试将一个新的、不同的应用程序域与您的 WCF 服务相关联,(应该完全专用于您的 wcf 服务,而不是其他应用程序)。
        • 我已经创建了一个新域,现在正在调试。这个bug有什么解释吗?
        • 检查正在使用旧应用程序域的其他应用程序,它们可能是停止为其他人调试的原因。或者检查您的应用程序域配置。嗯,有很多原因。我在开发中的最佳实践是为每个服务/应用程序设置单独的应用程序域。因此,如果有人导致工作进程崩溃,其他人不会受到伤害。
        • 每个域我只有一个应用程序。而且它不再起作用了。今天早上我尝试调试我的应用程序,但遇到了同样的问题。虽然我已经创建了几个新域来解决这个问题,但这并没有帮助。
        猜你喜欢
        • 2015-01-27
        • 2017-08-13
        • 2012-05-19
        • 2011-06-12
        • 2011-10-19
        • 2012-04-04
        • 2014-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多