【问题标题】:Debug WCF service locally from another application从另一个应用程序本地调试 WCF 服务
【发布时间】:2019-05-17 04:51:59
【问题描述】:

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

我有两个解决方案:

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

在本地系统中安装了 IIS。我运行了 WCF 应用程序,消息显示“服务托管在 IIS 上”。

现在我想调试另一个应用程序。我也从 VS 运行了该应用程序。我想调试 WCF 和应用程序中的方法。

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

【问题讨论】:

    标签: .net wcf


    【解决方案1】:

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

    如果你想在本地机器上调试一个正在运行的进程,你可以attach the debugger to another process 或者如果该进程在另一台机器上运行,你必须寻找remote debugging

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

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

    • 如果您将两个项目都放在一个解决方案中,那就更容易了:只需将您的解决方案设置更改为 multiple startup projects,然后按 F5。

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

    【讨论】:

    • 你的意思是,我必须打开两个 VS 实例。一方面,我必须运行 WCF 应用程序,另一方面我必须运行控制台应用程序。它是否正确?在这种情况下是否需要附加到进程?
    • 是的,正确的。在这种情况下,没有必要附加到进程。
    • 我都执行了,但是 WCF 中的断点没有命中。在控制台应用程序 app.config 中,端点是使用 localhost url 定义的。我相信这并没有指向正确的服务。
    • 本地主机应该是正确的。您是否仔细检查了端口?您是在 Debug 模式下还是在 Release 模式下开始的?
    • 我有一个问题。控制台应用程序具有对已发布 WCF 应用程序文件的文件夹的服务引用。我想这就是它没有达到断点的原因。我想知道如何在控制台应用程序中添加对 WCF 应用程序的引用以便能够对其进行调试。
    【解决方案2】:

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

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

    【讨论】:

    • 在控制台应用程序中进一步挖掘时,我发现了服务参考,它指向:localhost/xyz。但是在我的本地系统中,这个 xyz 文件夹不存在,无论是在 inetpub\wwwroot 内部还是外部。我从服务器克隆了这段代码。在服务器中,这个 xyz 文件夹存在于 intetpub\wwwroot 下。为了解决这个问题,我将本地 WCF 服务发布到本地 IIS。我在默认站点下创建了一个新的虚拟应用程序,并将物理文件路径设置为 inetpub\wwwroot 但出现“内部服务器错误”。
    • 为什么不使用 IIS Express?
    • 我需要安装它还是它与 VS 捆绑在一起?
    • 它是 VS 的标准配置,如果您查看您的 WCF 项目,项目属性中应该有一个 web 部分,只需将其更改为 IIS Express(那么您不需要完整的 IIS)
    猜你喜欢
    • 2017-04-09
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多