WCF学习记录二

1、WCF不能单独存在,必须托管(hosting).在windows里该进程被叫做宿主进程,单个进程可以托管多个服务,而相同的服务也可以托管在多个宿主进程里。但是一个独立的进程有利于错误与安全的隔离。宿主可以IIS,也可以windows vista的windows激活程序(WAS),也可以由开发者提供的应用程序的一部分

 IIS托管

在IIS下设置一个虚拟目录,并提供一个.svc文件,作用类似.asmx文件,部署方式和webservice一样

自托管

就是自己建一个应用程序来做为宿主,控制台,winform,WPF等。

uri baseAddress =new Uri(http://localhost:80000/)

ServiceHost host =new ServiceHost(typeof(myService),baseAddress);

host.Open();

//host.Close();

 

当然也可以注册多个地址如

Uri tcp = new Uri("http://localhost:4000");

Uri http = new Uri("net.tcp://localhost:4001");

ServiceHost host = new ServiceHost(typeof(myService),tcp,http);

 

也可以在配置文件里写这个基地址,不过不能和代码写的地址冲突。

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service name="WcfServer.ChatService">
                <endpoint address="" binding="wsHttpBinding" contract="WcfServer.IChatService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                <host>
                    <baseAddresses>
                        <add baseAddress="http://192.168.20.58:8732/WcfServer/ChatService/" />
                    </baseAddresses>
                </host>
            </service>
        </services>
    </system.serviceModel>

 

WAS托管,由于windows vista 的原因,鲍尔默都说vista是他最大的失误。就不看了

 

绑定

服务之间的通讯方式有很多种,包括,同步请求/应答(Rqeust/Reply)消息,或者异步的"即发即弃(Fire_and_Forget)",双向(Bidirectional)消息;即时消息或者队列消息;以及持久(Druable)队列或者可变(Volatile)队列,传递消息的协议包括(HTTP 或者HTTPS)TCP,P2P(对等网)、IPC(命名管道,以及MSMQ(Microsoft  Message Queue 微软消息队列),还有消息编码格式,消息安全策略,消息传递等, 如果自己组合会有成千上万的模式,而且这其中一些模式是对立的。

为了简化选项,易于管理,WCF提供了绑定,将这些特定的技术组合到一起。

一个绑定包括传输协议,消息编码,通讯模式,可靠性,安全性,事物传播以及互操作性等项目选项的集合,使得他们保持一致。

 

WCF定义了9种绑定标准

基本绑定(basic binding)

基本绑定能够将WCF服务公开为旧的asmx Web 服务,使得旧的客户端能够与新的服务协作。

 

TCP绑定

由NetTcpBinding类提供,TCP绑定使用TCP协议实现在Intranet种跨机器通讯,TCP绑定要求客户端和服务端必须都使用WCF。

 

对等网绑定

 

IPC绑定

使用命名管道在同一台机器上通讯,不能接收来自机器外部的调用。

 

Web服务(WS)绑定

使用HTTP或HTTPS进行传输,

 

WS联邦绑定

WS双向绑定

与WS绑定类似,但是支持服务器到客户端的双向通讯。只支持HTTP协议。

 

MSMQ绑定,

MSMQ集成绑定

 

                   绑定关系图

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值