wcf的binding和host
----------------------------Binding绑定:
定义:绑定表示通讯信道的配置;
定义了客户端与服务端之间的协议;
---传输协议:http.tcp.命名管道.msmq,自定义(udp,smtp)
---消息编码:Text.Mtom,Binary,自定义编码;
---标准的绑定:
BasicHttpBinding(兼容soap1.1)\WSHttpBinding(兼容1.2)\NetNamedPipeBinding(进程内或同主机的调用)\NetTcpBinding(同主机或跨主机调用)
\NetPeerTcpBinding(同主机或跨主机调用)\消息绑定: NetMsmqBinding\MsmqIntegrationBinding(用于早期技术的msmsq的交互)
----可以通过配置文件来配置绑定信息;
<system.serviceModel>
<client />
<services>
<service name="">
<endpoint binding="netTcpBinding" bindingConfiguration="netTcp" contract="">
</endpoint>
</service>
</services>
<bindings >
<netTcpBinding>
<binding name="netTcp" maxReceivedMessageSize="5000000">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
------------------------------------宿主:
宿主:self-hosting:控制台或windows,windows服务;
IIs/asp.net;
windows activation Service;
----多服务:创建多个servicehost实例,配置文件的添加多个service节点;
---通过代码实现服务行为的添加
host = new ServiceHost(typeof(wpf));
ServiceDebugBehavior sb = host.Description.Behaviors.Find<ServiceDebugBehavior>();
if (sb == null)
{
sb = new ServiceDebugBehavior();
host.Description.Behaviors.Add(sb);
}
sb.IncludeExceptionDetailInFaults = true;
host.Open();
------------IIS/was宿主;
.svc文件在iis中