【问题标题】:Visual Studio 2010 debugger not doing anything for WCF projectVisual Studio 2010 调试器没有为 WCF 项目做任何事情
【发布时间】:2011-01-28 22:27:43
【问题描述】:

我有一个正在尝试调试的 WCF Web 服务(使用 .NET 3.5)。但是,每当我在程序中设置任何断点时,它们在调试模式下运行时都不会被命中。此外,Visual Studio 不会捕获任何异常——通常,当调试时抛出未捕获的异常时,Visual Studio 会显示抛出的异常并带您到抛出异常的代码行。

谁能解释一下这个问题?

【问题讨论】:

  • 符号加载了吗? PDB 文件.....
  • 调试的时候你的断点是红点还是中心空的红环?
  • 我在“输出”窗口中没有看到任何提及 PDB 文件的内容,还是应该在其他地方查找该信息?
  • 尝试在 WCF 服务中插入行 System.Diagnostics.Debugger.Break();,然后编译。运行。如果这没有启动调试器,你一定是在点击服务的另一个实例......或者什么。
  • @DashRantic:你如何启动你的调试器?按F5?您的 WCF 服务是托管在 IIS 还是 VS 开发服务器上?

标签: c# wcf visual-studio-2010 debugging service


【解决方案1】:

您是否正在尝试远程调试服务?在这种情况下,您还需要在远程计算机上运行 VS Remote Debugger。

您还应该在代码中设置服务调试行为以获取异常详细信息,如下所示:

ServiceHost MyServiceHost = new ServiceHost(myService, myBaseAddress);

#if CONFIG = "Debug"
//set Service Debug Behavior (for security should not be enabled during deployment)
Description.ServiceDebugBehavior sdb = MyServiceHost.Description.Behaviors.Find<Description.ServiceDebugBehavior>();
if (sdb == null) {
sdb = new Description.ServiceDebugBehavior();
MyServiceHost.Description.Behaviors.Add(sdb);
}
sdb.IncludeExceptionDetailInFaults = true;
#endif

MyServiceHost.AddServiceEndpoint(typeof(IMyService), new NetTcpBinding(), myBaseAddress);
MyServiceHost.Open();

【讨论】:

  • 我不是要远程调试——这都是本地atm。
【解决方案2】:

这个答案我很晚了,但也许它会帮助别人。当您调试使用本地 IIS 而不是 Visual Studio 开发服务器的 Web 服务时,您可能会遇到此问题。

在这种情况下,您必须附加到正在运行的 IIS 实例,而不仅仅是点击“运行”。为此,请单击 Debug=>Attach To Process。然后,选择进程“w3wp.exe”。最后,选择“附加”,您应该已经准备好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多