4

我有一个可以调试的 WCF 服务。我在代码中我想要调试并获取消息的位置放置了一个断点

The breakpoint will not currently be hit.  The source code is different from the original version.

我已经为此苦苦挣扎了 3 天,并尝试了我在其他帖子中找到的所有内容。

我注意到的一件事是,如果我转到Debug -> Windows -> Modules,我想要调试的模块不在该列表中。我认为这可能与它有关。有谁知道我应该怎么做。

谢谢,

萨钦

编辑:

我已经尝试了所有这些事情以及更多,但由于某种原因,我仍然遇到同样的问题。有什么解决办法吗?

4

3 回答 3

3

在关闭其中打开的任何文件后尝试关闭 Visual Studio。然后进入您的 bin 文件夹进行调试并删除所有 .pdb 文件。现在重新打开 Visual Studio 并重建您的项目或进行清理和构建以确保您处于调试模式而不是发布模式。如果您的 pdb 文件被锁定,则可能会出现此问题。如果您有该 dll 的 pdb 文件,那么它应该选择该模块进行调试。

如果这不起作用,您是否重新启动了机器?如果不尝试重新启动,因为有时该过程可能会在 Windows 中被捕获,并且重新启动将释放锁定以覆盖文件。

快速提问。有问题的模块是外部模块还是您正在调试的当前解决方案的一部分?如果它是一个内部模块,那么上面的解决方案应该可以正常工作,因为您将为该程序集生成一个新的 .pdb 文件。

于 2012-06-21T10:37:49.933 回答
1

右键单击解决方案资源管理器中的项目,然后选择清理。构建项目的新版本,断点将再次起作用。如果这不起作用,请尝试从 bin 和 obj 文件夹中删除所有内容,然后重新构建您的项目。

于 2012-06-21T10:30:57.540 回答
1

显而易见,这个错误意味着编译后的服务与源代码不匹配,即源代码在服务运行后发生了变化。确保重建您的解决方案。

我调试 WCF 服务的方法是拥有 2 个 Visual Studio 实例。一个运行 WCF 服务托管应用程序(控制台),另一个运行客户端。确保您正在运行调试版本。只要客户端可以成功连接到您的服务,它就应该可以正常工作(和调试)。

你得到

当前不会命中断点。

当具有该断点的模块尚未加载(尚未)时。在客户端连接之前,您的服务不会被加载。

于 2012-06-21T10:31:10.533 回答