WCF分发简述-ChannelDispatcher,EndpointDispatcher,MessageFilter

简介:

学习和使用WCF已经有很长一段时间了,但是一直不敢写关于这方面的blog。以为院子里有个WCF高手(Artech),我学习WCF大部分就是看的他的blog。所以在这里感谢Artech大哥的分享。前些日子的XX问到这个问题,所以我才斗胆有了这篇blog,欢迎高手指正。

1ServiceHost ChannelDispatcher

   没使用过Viso,但是现在的机子上只有这个东西,所以随便乱画:

 

WCF分发是指在服务端信道监听到Message,路由选择那个service,operation操作的过程,我的理解。

首先我们的WCF会有一个宿主程序(控制台,Windows服务,或者是IIS寄宿等等),当我们的ServiceHost调用Open方法,WCF就会创建我们的多个信道分发器(ChannelDispatcher),每个ChannelDispatcher都会拥有一个信道监听器(ChannelListener),所以我们的信道分发器的取决我我们配置中的Listener Url。ChannelListener就有一直在固定的端口监听,等到Message的到来,调用AcceptChannel构建信道形成信道栈,开始对Message的处理。

2EndpointDispatcher

接上,Message处理开始后,ChannelDispatcher就会选择一个匹配的EndpointDispatcher来处理这条Message。这里EndpointDispatcher的选择匹配是更具EndpointDispatcher的属性ContractFilter和AddressFilter。

讲到这里我们就不得不在说说wcf中MessageFilter类,他有两个重载方法Match,用来验证是否匹配Message。他在Wcf订MS为我们预定义了6中MessageFilter。继承类图为:

默认情况下ContractFilter采用的是ActionMessageFilter,而AddressFliter采用的是EndpointAddressMessageFilter,我们可以采用ServiceBehaviorAttribute改变MessageFilter。

我们的WCF利用EndpointDispatcher的这两个MessageFilter来选择MessageFilter,分发到相应的Endpoint







 本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/835165,如需转载请自行联系原作者


相关文章
|
11月前
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一
|
10月前
|
C# 数据安全/隐私保护
c#如何创建WCF服务到发布(SqlServer版已经验证)
c#如何创建WCF服务到发布(SqlServer版已经验证)
39 0
|
10月前
|
安全 数据库连接 数据库
WCF服务创建到发布(SqlServer版)
在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构。该架构的项层为服务模型层。 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案。且能与已有系统兼容写作。 简单概括就是:一组数据通信的应用程序开发接口。
66 0
|
11月前
Visual Studio 2022 创建 WCF服务 找不到
Visual Studio 2022 创建 WCF服务 找不到
|
C++
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
105 0
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF使用纯代码的方式进行服务寄宿
服务寄宿的目的是为了开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或者多个终结点,使之暴露给潜在的服务消费,服务消费者通过匹配的终结点对该服务进行调用,除去上面的两种寄宿方式,还可以以纯代码的方式实现服务的寄宿工作。
862 0
|
Windows
WCF服务寄宿到IIS
一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。
1055 0
WCF服务自我寄宿
WCF服务的寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以寄宿在各种进程之中,常见的寄宿有: IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。
1002 0