调试到WCF服务

sla*_*dau 4 .net c# wcf soa visual-studio-2010

所以我们运行在SOA架构中.我有一个服务,我正在尝试调试来自不同解决方案中的WinForms应用程序的调用.

在这个winforms应用程序中,我已经在app.config中正确引用了localhost上的服务,现在我想启动一个WCF服务的实例,这样我就可以设置一个断点并逐步执行它.

当我进入服务时,我右键单击项目,转到属性,然后在"开始操作"下,我选择服务bin/debug /目录中的.exe文件.然后我保存,编译并按F5启动它的实例.我收到此错误:

在此输入图像描述

我该怎么办?

Sam*_*der 6

你必须在一个进程中托管服务,然后从那里调试它.这可以像编写控制台应用程序来托管服务,或编写Windows服务来托管它,或Windows窗体应用程序,或在IIS中托管它一样简单.

您可以在控制台应用程序中托管,如下所示:

static void Main(string[] args)
{
  using (ServiceHost host = new ServiceHost(typeof(YourNamespace.YourServiceInterface)))
  {
    host.AddServiceEndpoint(typeof(
YourNamespace.YourServiceInterface), new NetTcpBinding(), "net.tcp://localhost:9000/YourService");
    host.Open();

    Console.WriteLine("Press <Enter> to terminate the Host 
application.");
    Console.WriteLine();
    Console.ReadLine();
  }
}
Run Code Online (Sandbox Code Playgroud)

本文介绍如何在Windows服务中托管.我建议添加

Debugger.Launch();
Run Code Online (Sandbox Code Playgroud)

作为方法的第一行,OnStart以便您可以在服务启动时附加调试器.这将有助于调试任何启动问题.否则,您只需从Debug菜单中选择AttachToProcess并附加到正在运行的Windows服务即可.

你需要添加using System.Diagnostics才能使用该Debugger.Launch();方法