renmin  
常常被别人以为是高手

下午的课,还是张瞰讲的

下午讲解了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。


 

posted on 2005-10-25 15:36    阅读(1111)  评论(0)    收藏  举报