下午的课,还是张瞰讲的
下午讲解了BindingBinding就是一个协议栈。Demo了一个自定义的Binding
<bindings>
<customBinding>
<binding configurationName="reliableTcp">
<reliableSession />
<binaryMessageEncoding/>
<tcpTransport/>
</binding>
</customBinding>
</bindings>
这是一个采用了tcp协议,二进制编码的,可靠(不丢包)的协议。使用了tcp后地址要写成这个样子:"net.tcp://localhost:8006/MathService/ep6"
下面介绍了BehaviorBehavior不是Endpoint的一部分,对客户端是透明的。例如:[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]每次调用都重新实例化。如果是PerSession,则默认的Http协议(basicHttpBinding)不支持Session。
ConcurrencyMode可以控制并发,Single只支持一个线程访问,Multiple支持多线程,Reentrant只支持一个线程,但是可以避免死锁。
Behavior只能用于修饰class,而不能修饰interface。
最后介绍的是一个双向的通道。当用户调用服务器上的方法时,服务器能够对客户端进行回调。
在声明ServiceContract的时候,需要设置CallbackContract属性。回调必须使用Reliable的通道。
在客户端可以使用
IServiceManager p = ChannelFactory.CreateDuplexChannel<IServiceManager>(new UserLoginCallback(),"callback");传递回调对象。
Indigo介绍的这里就结束了。我感觉覆盖了大部分的内容。但是安全和分布式的事务都没有介绍。
这是今天我写的Demo/Files/renmin/Server.zip
期待明天的Windows Workflow Foundation。

浙公网安备 33010602011771号