如何使用 WCF 在 C# 中调试 localhost 客户端/服务

Posted

技术标签:

【中文标题】如何使用 WCF 在 C# 中调试 localhost 客户端/服务【英文标题】:How To Debug Localhost Client/Service in C# with WCF 【发布时间】:2017-10-01 03:07:34 【问题描述】:

C# 新手,我注意到创建服务不是您可以在 Visual Studio 2017 界面中运行以进行调试和逐步完成的操作。至少,我不知道。相反,您必须根据需要创建服务,希望它能正常工作,然后使用服务安装程序命令 (InstallUtil.exe),然后您无法逐步调试它以检查问题。需要与需要使用 WCF 通过命名管道 IPC/RPC 与 localhost 上的服务 EXE 通信的客户端 EXE 一起使用这个问题。

那么,调试这个的正确方法是什么?我是否应该先构建一个常规的控制台应用程序,让客户端 GUI EXE(一个 Win Forms 应用程序)通过 WCF 与这个控制台应用程序对话,然后,当它工作时,将代码从控制台应用程序复制到服务应用程序和安装服务?

【问题讨论】:

【参考方案1】:

在解决方案资源管理器中,右键单击解决方案名称。

点击设置启动项目。

在“解决方案属性”对话框中,选择“多个启动项目”。

在“多个启动项目”网格中,在与服务器项目对应的行上,点击“操作”并选择“开始”。

在与客户项目对应的行上,点击“操作”并选择“开始”。

点击确定。

更多信息请访问https://msdn.microsoft.com/en-us/library/bb157685.aspx

【讨论】:

一旦我关注this tutorial,但选择了 EXE 而不是 DLL,现在有办法让它在 Windows 服务控制面板中加载,以便它可以启动、停止、暂停、并恢复,并在管理员级别的安全上下文下运行?【参考方案2】:

创建服务不是您可以在 Visual Studio 2017 界面中运行以进行调试并逐步完成的事情。-您可以在调试 C# 或 js 时进行调试。

您可以完全单独创建您的服务,使用 wcftestclient.exe 单独调试和测试服务。

那么,调试这个的正确方法是什么? 您可以从 Visual Studio 命令提示符运行 wcftestclient.exe。 右键单击我的服务项目并添加您托管服务的基本地址。以下是快照。 将调试器放在要调试的 VS 中,并提供来自此客户端 GUI 的输入。调试器将被命中。因此,您不必创建控制台应用程序或任何东西来测试 WCF 服务。

【讨论】:

以上是关于如何使用 WCF 在 C# 中调试 localhost 客户端/服务的主要内容,如果未能解决你的问题,请参考以下文章

在调试模式下以编程方式设置 WCF 超时

如何在 C# WCF 中接收 Stripe api webhook

如何使并行独立任务在 C# 中调用 WCF

调试 WCF Web 服务故障

如何使用 Jquery Ajax 发送自定义标头并使用 C# 在 WCF 服务中检索相同的标头值?

在 WCF 中调试命名管道