【问题标题】:Debug into WCF Service调试到 WCF 服务
【发布时间】:2011-10-16 00:22:37
【问题描述】:

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

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

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

我该怎么办?

【问题讨论】:

  • 您如何托管此服务?在 IIS 下还是作为 Windows 服务?
  • 这是一个windows服务,不是IIS
  • 您必须附加到它。调试 -> 附加到进程

标签: c# .net wcf visual-studio-2010 soa


【解决方案1】:

你必须在一个进程中托管服务,然后从那里调试它。这可以像编写一个控制台应用程序来托管服务一样简单,或者编写一个 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();
  }
}

this article 展示了如何在 Windows 服务中托管。我建议添加

Debugger.Launch();

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

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

【讨论】:

    【解决方案2】:

    您必须将您正在本地构建的服务安装为 Windows 服务,然后附加到它。

    【讨论】:

      【解决方案3】:

      服务是在 IIS 下运行还是自托管?无论哪种方式,一旦服务运行,您都可以通过进入 Debug->Attach Process 来附加到它。

      如果在 IIS 下运行,您需要查找 w3wp.exe (IIS 7) 进程。请注意,要附加到此过程,您很可能必须以管理员身份运行 VS。如果您运行的是旧版本的 IIS,则该进程称为 aspnet_XXX。

      连接后,您可以放入断点并根据需要进行调试。

      【讨论】:

        【解决方案4】:

        好吧,当您尝试运行/调试类库项目时遇到了该错误,因此请检查您的服务项目是否不是那种类型的。

        如果您想让从 VS 运行/调试变得容易(并且不存在设计基础架构问题),则将其设为 WCF 服务应用程序项目,该项目将服务托管在类似项目的网站中:https://dl-web.dropbox.com/get/Photos/web/wcfserviceapp.png?w=44e8c6ed

        这样您可以在其解决方案中运行服务,然后从其解决方案中运行 winforms 应用程序,然后您可以转到菜单“调试/附加到进程...”并查找服务 url 和端口:@987654322 @

        我希望这会有所帮助,如果没有,请详细说明以更清楚地了解您有什么样的项目,您的解决方案如何以及其他有用的信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多