WCF(五) Host WCF Service

本文详细阐述了如何使用HostApplication部署HostaWCFservice,包括使用IIS、WAS、托管程序(如Console、WinForm、WPF)的方式。重点介绍了如何根据操作系统、通信需求和特定场景选择合适的部署方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次我们讨论Host a WCF service.

前述

为了让client可以使用service,我们必须host service到一个每时每刻都在运行的环境中(我们叫Host Application),因为它时刻等待着来自client的request(请求). Host有人翻译成"寄宿",我仍使用Host. Host application负责start和endservice, 然后监听来自client的request,解析client的request,然后调用相应的service. 最后把结果返回给client.

 

Host Application为每一个Service 创建一个ServiceHost对象. 当有多个Service是,就会创建多个ServiceHost对象. 当client需要使用多种protocol(通信协议),如Http和tcp,此时你不必创建多个service, 因为前面我们知道一个Service可以有多个endpoint(endpoint 包含Address,Binding,Contract). Binding指定不同的protocol,所以,我们只需创建多个endpoint,在binding中指定不同的protocol即可.

可以把service host到以下环境中:

1.IIS:我们需要创建一个Web Site,使用该Website去host wcf,然后将该website放到IIS中. 如果你使用了IIS去host wcf,那么只能使用http protocol. 当有request到来时,host application可以自动激活,并开始监听.

2.WAS:(Windows Process Activation Service)作为IIS7.0的一个新特性.我们同样需要创建一个web site .Vista,Windows 7, Windows Server2008 等操作系统可以安装WAS.  如果你使用了WAS去host wcf,可以使用http ,tcp,MSMQ,Named Pipe protocol. 当有request到来时,host application可以自动激活,并开始监听.

3.Managed Application(托管程序,如Console,WinFrom,WPF): Self-Hosting. 当有request到来时,host application不能自动激活.需要在代码中手动new出serviceHost对象.

我们如何选择哪一种host方式呢?

答案是:取决于你的操作系统,和通信需求,和特定场景.

1.如果你的操作系统是windows server2003,并且程序只用http即可满足需求. 那么使用IIS去host. 如果程序除了使用http不可满足需求(除了http,还需要tcp),则要创建window 服务去host.

2.如果你的操作系统是windows server2008(或 windows 7 )使用WAS. 因为它可以支持更多的protocol.

3.如果仅仅用于演示,可以使用Console去host. 但是release到真正的产品时,最好用winForm或WPF.

对于每一种方式,我们如何实现呢?

未完,待续....

转载于:https://www.cnblogs.com/marksun/archive/2012/08/19/2646890.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值