.net - WCF 服务 TCP/Ip 与 Http 协议(protocol)的 Internet 与 Intranet 服务消耗

标签 .net wpf wcf wcf-binding

我有一个 WCF 服务,可以通过互联网中基于 jQuery 的 Web 应用程序以及本地 Intranet 中的 WPF 应用程序使用该服务。

我应该选择 http 还是 TCP 协议(protocol),或者我应该使用用于互联网的 http 协议(protocol)和用于 Intranet 的 TCP 协议(protocol)创建两个类似的服务。

最佳答案

老实说,我建议两者都做,这也是我所做的。我认为公开服务“x”并能够根据消费方的需求通过“y”或“z”进行连接是很好的做法。

当我第一次决定这样做时,我认为为同一服务公开多个绑定(bind)类型是微不足道的。毕竟 WCF 就是关于选项的,所以为什么不公开一些您想要的选项,对吧?棘手的部分是,您不能让 (2) 具有不同绑定(bind)(例如 HTTP 和 netTCP)的不同服务都使用相同的服务合约。尝试托管这样的服务时,您将收到错误消息。

我想出了一个简单的抽象,使用一个额外的接口(interface)来允许这件事。现在,您将有 (2) 个单独的合约要实现,每个绑定(bind)类型 1 个,但下面仍然只有一个实现的代码库。看一下我写的一篇文章,其中通过代码示例进一步解释了这一点:

Exposing Multiple Binding Types For The Same Service Class In WCF

关于.net - WCF 服务 TCP/Ip 与 Http 协议(protocol)的 Internet 与 Intranet 服务消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7805503/

相关文章:

.net - RichTextBox 不显示 ' 并显示一个菱形,而不是里面有一个问号

wpf - BorderThickness 为 1 以 2 像素的厚度呈现 - 我在这里缺少什么?

c# - 将现有接口(interface)重新用作 WCF 接口(interface)。契约(Contract)装饰是否影响现有应用程序?有什么坏处吗?

c# - 将 WCF 契约(Contract)移动到单独的 dll

c# - 如何创建winform登录对话框并保持循环

c# - 等待线程池上的所有任务完成

.net - 将 .NET DateTime 值传递给 SAP PI xsd :Date

WPF:特定控件/ View / View 模型上的 LostFocus 事件

Wpf Combobox Equals 方法不合逻辑的行为

WCF DataContract 的 C# 类结构