【问题标题】:Why is my module not in the modules list?为什么我的模块不在模块列表中?
【发布时间】:2012-06-23 13:41:56
【问题描述】:

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

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

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

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

谢谢,

萨钦

编辑:

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

【问题讨论】:

  • 你能清理所有的dll(搜索你在计算机上其他任何地方没有任何副本)然后清理解决方案并构建它吗?
  • @CSharpened 已经看过那篇文章了 - 看过了
  • 我已经添加了另一个答案供您尝试。

标签: wcf visual-studio-2010 debugging


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    你得到

    当前不会命中断点。

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

    【讨论】:

    • 另外,您可以在同一个解决方案中使用这两个项目。这样,您将不需要运行两个 Visual Studio 实例。您可以右键单击您的解决方案并添加现有项目。
    • 我发现这样工作更容易。您可以在一个实例中停止所有内容(Shift-F5),而不必担心您正在停止另一部分。更轻松的调试意味着更快地工作并减少错误。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      相关资源
      最近更新 更多