进行WCF Service详细解读

开发 后端
随着时代的进步对WCF Service版本也快速的提升与升级,下面我就对升级前和升级后的WCF Service,做一下自己的解析。希望能够对大家有帮助

本文主要讲述WCF Service,怎样创建WCF Service项目。这些内容都是一些门户网站和技术论坛找到的,中间可能有不少错误是我没有挑出的,欢迎大家指正。

上一篇文章中,我们重点讨论了线程关联性对service和callback的操作执行的影响:在service host的时候,可以设置当前线程的SynchronizationContext,那么在默认情况下,service操作的执行将在该SynchronizationContext下执行(也就将service操作包装成delegate传入SynchronizationContext的Send或者Post方法);#t#

同理,对于Duplex同行方式来讲,在client调用service之前,如果设置了当前线程的SynchronizationContext,callback操作也将自动在该SynchronizationContext下执行。

对于Windows Form Application来讲,由于UI Control的操作执行只能在control被创建的线程中被操作,所以一这样的方式实现了自己的SynchronizationContext(WindowsFormsSynchronizationContext):将所有的操作Marshal到UI线程中。正因为如此,当我们通过Windows Form Application进行WCF Service的host的时候,将会对service的并发执行带来非常大的影响。

详细讲,由于WindowsFormsSynchronizationContext的Post或者Send方法,会将目标方法的执行传到UI主线程,所以可以说,所有的service操作都在同一个线程下执行,如果有多个client的请求同时抵达,他们并不能像我们希望的那样并发的执行,而只能逐个以串行的方式执行。

我们可以通过一个简单的例子证明:在默认的情况下,当我们通过Windows Form Application进行service host的时候,service的操作都是在同一个线程中执行的。我们照例创建如下的四层结构的WCF Service应用:

WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)

责任编辑:chenqingxiang 来源: 51CTO.com
相关推荐

2009-12-08 17:16:37

WCF Web Ser

2009-12-08 17:34:25

WCF的配置

2009-12-11 18:05:39

PHP链接WEB SE

2009-12-08 09:21:13

WCF数据量

2009-12-08 16:42:48

WCF Service

2009-12-07 18:33:31

WCF Service

2009-12-08 14:28:16

XTemplate +

2009-12-08 10:35:29

WCF地址

2009-12-08 16:01:50

WCF Service

2011-04-28 15:18:59

2009-11-09 17:30:20

WCF元数据

2009-12-22 15:02:40

WCF限流

2009-11-06 10:11:34

WCF和Web Ser

2009-12-08 16:09:02

WCF消息

2009-12-08 09:00:14

WCF线程

2009-12-07 18:06:46

WCF框架

2010-03-02 16:05:48

WCF端点配置

2010-02-26 17:44:51

WCF安全参数

2010-03-01 16:25:07

WCF体系架构

2010-03-02 14:41:00

WCF行为控制
点赞
收藏

51CTO技术栈公众号