从另一个应用程序在本地调试 WCF 服务

Debug WCF service locally from another application

我已经检查了一些关于 SO 的帖子。我对在本地系统上调试 WCF 有点困惑。

我有两个解决方案:

  1. WCF 服务本身
  2. Windows 使用此服务的控制台应用程序。

在本地系统中安装了 IIS。我 运行 WCF 应用程序和显示的消息 "Service hosted on IIS"。

现在我想调试另一个应用程序。我 运行 那个应用程序也是来自 VS。我想同时调试 WCF 和应用程序中的方法。

我想知道这种方式是否可以调试WCF应用程序或者是否有任何其他更好的调试方式。它可以作为 Windows 服务安装还是只需要 IIS?

您可以在 IIS 上、在 Windows 服务中甚至在您的应用程序(WinForms、WPF、控制台)中托管 WCF 服务。 但这与您对调试的要求无关。

如果您想在本地计算机上调试 运行 进程,您可以 attach the debugger to another process or you have to look for remote debugging 如果该进程在另一台计算机上运行。

但既然您的 Visual Studio 中有客户端和服务器代码,为什么不同时启动这两个应用程序呢?

  • 如果您有两个解决方案,您可以为客户端解决方案启动一个 Visual Studio 实例,为服务器解决方案启动另一个 Visual Studio 实例。然后两个都按F5

  • 如果您在一个解决方案中同时拥有两个项目,那就更简单了:只需将您的解决方案设置更改为 multiple startup projects 并按 F5。

无论哪种方式,您都可以在本地调试客户端和服务器代码。

最快的方法(也是我能想到的最简单的调试 WCF 服务,如果你有两个项目的话,就是这个

  1. 创建一个新的解决方案(或只使用现有的 VS 解决方案)
  2. 将 WCF 服务项目和控制台项目添加到 服务(虽然在不同的实例上可以是 运行)
  3. 将控制台应用程序设置为主启动应用程序
  4. 将服务引用添加到控制台应用程序(并单击发现 本地按钮)
  5. 这将使用服务库创建服务引用 已创建
  6. 然后只需 运行 控制台 APP 中的方法,它就会命中您的 服务断点