WCF 应用程序中的修改不起作用

Posted

技术标签:

【中文标题】WCF 应用程序中的修改不起作用【英文标题】:Modification in a WCF application not working 【发布时间】:2019-09-09 13:15:05 【问题描述】:

我的问题是关于“为什么我的修改不起作用?”而不是“如何在 WCF 中创建聊天应用程序?”

Here is the entire source code after modification..

我已经修改了this application,以便可以将 GUI 和服务引擎解耦。

ChatClient

public partial class ChatClient : Form, IChatService


被分成几个文件,ChatClient被重命名为ChatClientForm

public class ChatClientForm 
public class ChatService : IChatService
public interface IChatChannel : IChatService, IClientChannel 
public interface IChatService

现在,问题是:服务器启动,用户可以登录,但无法发送和接收消息。

我错过了什么?

【问题讨论】:

WCF 是关于通信的,而不是 UI。当您的服务收到请求时,您必须在类中编写引发事件或显示消息框的代码 一种方法是将事件添加到 IChatService 并在收到请求时引发它们。如果表单有对服务的引用,例如存储在一个字段中,那么很容易在表单本身中添加事件处理程序,并在那里修改 UI 在问题本身中发布相关代码。链接死了。无论如何,SO 是关于编程问题的。 codereview.stackexchange.com 是代码审查的合适站点。 现在有人必须跟踪这些链接并调试整个应用程序才能理解问题所在。相关代码虽然应该只有几行 - 表单字段、处理程序、服务代码 是的,我知道它是 Pastebin,这意味着它们会在一段时间后丢失。我也知道我必须下载所有内容才能理解问题 【参考方案1】:

鉴于您的问题是关于聊天应用程序(而不是一直轮询),您可以使用Duplex Services in WCF, 这将允许您将数据发送到服务器并允许服务器将数据发送回您的应用程序,网络上应该有很多关于在聊天应用程序中使用此服务类型的示例,您可以在

https://www.codeproject.com/Articles/25261/A-WCF-WPF-Chat-Application

这个想法是打开一个通道,当有其他客户端发送给它的消息时,服务器可以回复它

【讨论】:

我的问题是关于“为什么我的修改不起作用?”而不是“如何在 WCF 中创建聊天应用程序?”

以上是关于WCF 应用程序中的修改不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 WCF 中启用了 Cors,但在实时服务器上不起作用

WCF入门教程四[WCF的配置文件]

使用在端点上设置了标识的 WCF:正确的 UPN 不起作用

运行应用程序可执行文件时,在 WinForm 应用程序中托管 WCF 服务不起作用

如何配置 WCF 服务以同时使用 HTTP 和 HTTPS - 多个绑定不起作用

连接的服务 WCF 不起作用 NET core 3.1