WCF Behaviors

来源:互联网 发布:南宁php招聘 编辑:程序博客网 时间:2024/06/06 14:02

1、Behaviors(行为) 定义WCF 客户端与服务端运行时的特性或配置,behaviors 不仅影响WCF 运行时,还会影响客户端与服务端之间的数据通信。


2、Behaviors 分类

服务级别,终结点级别,操作级别,契约级别


3、服务级别

ServiceBehavior,可以控制行为的并发性、实例化、限流、事务、会化管理、线程

1)AddressFilterMode

允许修改消息过滤器三个属性值:Any,Exact,Prefix消息分发器利用此设置来保证由正确的终结点处理传入的消息

2)AutomaticSessionShutdown

阻止服务器在全部消息都处理完毕后关闭会话设置为false时,就可以控制会话的生命周期了

3)ConcurrencyMode

设置服务是以单线程还是多线程运行默认值Single

4)IgnoreExtensionDataObject

默认值false设置为true,消息中不带任何未知的序列化数据

5)IncludeExtceptionDetailInFaults

设置为true,把未处理的异常作为SOAP错误消息发送给客户端开发环境需要设置为true,生产环境中需要设置为false

6)InstanceContextMode

设置服务实例的生命周期值:PerSession,PerCall,Single

7)MaxItemsInObjectGraph

当对象超出序列化或反序列化的最大项数时,会产生一个异常

8)ReleaseServiceInstanceOnTransactionComplete

设置为true,表示当活动事务结束后释放服务对象
ServiceHost host = new ServiceHost(typeof(Service1));host.AddServiceEndpoint(typeof(IService2), new BasicHttpBinding(), "http://localhost:9000/Service1");ServiceMetadataBehavior d = host.Description.Behaviors.Find<ServiceMetadataBehavior>();if (d == null){    d = new ServiceMetadataBehavior();    host.Description.Behaviors.Add(d);}d.HttpGetEnabled = true;
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]

4、操作级别

OperationBehavior,可以控制的行为有,事务行为、访问者身份识别行为、对象回收行为

1)AutoDisposeParameters

允许操作自动处理输入、输出和引用参数,默认为false

2)TranactionAutoComplete

当事务启动时,如果当前方法没有产生错误,把当前事务标志为结束设置为false,手动把事务标志为结束或放弃

3)TransactionScopeRequired

可判断一个事务是否是当前方法所请求的

4)Impersonation

有时需要以访问者的身份执行操作,需要设置这个属性为Required或Allowed

5)ReleaseInstanceMode

允许覆盖当前的服务对象None,BeforeCall,AfterCall,BeforeAndAfterCall

5、终结点级别

EndpointBehavior,服务行为只在服务端应用,终结点行为可以应用于服务,也可以应用于客户端。可以实现对客户端证书的使用和序列化器参数的管理。

1)dispatcherSynchronization

指定允许服务进行异步答复的终结点行为。

2)enableWebScript

启用终结点行为,此行为使得可以使用 ASP.NET AJAX 网页中的服务。此行为只能与 webHttpBinding 标准绑定或 webMessageEncoding 绑定元素一起使用。

3)endpointDiscovery

指定终结点的各种发现设置,例如终结点的可发现性、范围以及对终结点元数据的任何自定义扩展。

4)soapProcessingExtension

定义用于封送不同绑定类型和消息版本之间消息的客户端终结点行为。

5)synchronousReceive

指定服务或客户端应用程序中用于接收消息的运行时行为。它不具有任何属性或子元素。

6)transactedBatching

指定接收操作是否支持事务批处理。

7)webHttp

通过配置指定终结点上的 WebHttpBehavior。此行为与 webHttpBinding 标准绑定结合使用时,将为 WCF 服务启用 Web 编程模型。

6、契约级别

0 0
原创粉丝点击