WCF远程调试失败 - 未加载符号

时间:2010-11-03 10:59:13

标签: c# wcf debugging iis

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

P.S。我在我的PC上使用VS 2010,WinXp Sp3,在服务器上使用Windows Server 2003。

[已更新] VS 2010是否有可修复远程调试问题的补丁?

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

3 个答案:

答案 0 :(得分:2)

最后,我找到了解决方案。我将我的WCF输出文件复制到服务器上与我的电脑中相同的位置。它非常奇怪,但调试工作非常完美。

答案 1 :(得分:1)

以下是您的回答,以及我遇到的问题:

  

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

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

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

答案 2 :(得分:0)

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

第二:有时候每个人都会想到这种情况,再次使用选项(删除现有文件(已选中),带源代码(已选中))部署服务,可以解决问题。

实际上,这是我唯一的解决方案

此致

Mazhar Karimi