WCF异常现象两种特殊情况具体分析

开发 开发工具
我们在这篇文章中为大家介绍的两种WCF异常现象都包括:界面假死不抛出任何异常以及超时异常。在这里将会对此一一介绍。

WCF的实际操作中,通常都会遇到一些异常的发生,那么如何才能正确的解决这些异常呢?首先就需要我们通过不断的实践来积累经验,并对这些异常有一个深刻的了解。下面就为大家介绍两种特殊的WCF异常现象。#t#

WCF的代码实例网上到处都是,但是在实际的使用过程中总会出现很多问题,我就我在项目中使用WCF碰到的问题做个总结:

(注:要看到服务端真正异常配置includeExceptionDetailInFaults="true")

一。WCF异常现象:界面假死不抛出任何异常(按常理超过等待时间应该抛出超时异常但是没有抛出不知道是什么原因)或抛出超时异常。

代码环境:WinForm+netTcpBinding。

原因分析:因为netTcpBinding和wsHttpBinding都是有状态连接所以造成这种现象可能是没有及时释放资源或当前会话数超过maxConcurrentSessions配置节配置数。basicHttpBinding是无状态连接所以不存在此问题

解决方法:及时释放资源,增大maxConcurrentSessions配置数

二。WCF异常现象:超时异常。

代码环境:WinForm+netTcpBinding

原因分析:造成这个现象会有很多原因

1.接受信息长度超过maxReceivedMessageSize配置节配置数。

2.返回数组长度超过 maxArrayLength配置节配置数。

3.返回字节数超过maxBytesPerRead配置节配置数。

4.返回字符串长度超过maxStringContentLength配置节配置数。

5.获取表名称的字符数超过maxNameTableCharCount配置节配置数。

6.可序列化的项数超过maxItemsInObjectGraph配置节配置数。例如你要返回或接受一个有10个T,T包含有5个属性(基本类型)组成的List<T>或是一个有10行5列DataTable组成的DataSet,它们分别有50项。如果没有加大maxItemsInObjectGraph配置节的配置数很容易在返回较大列表时出现这个错误,当然应当使用分页或分批返回列表尽量避免传递过大列表

WCF异常现象解决方法:根据实际情况设定相应的配置节,或是采用续传,分页等合理的手段避免超限

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-07 17:37:40

WCF数据

2017-10-25 20:52:03

内核权限空指针异常

2010-02-24 14:25:48

WCF地址

2010-03-09 14:10:13

Python循环语句

2019-05-19 16:53:57

TCP协议TCP通信三次握手

2019-05-16 15:19:40

TCP协议TCP通信三次握手

2009-12-07 13:42:24

WCF框架

2019-05-17 09:02:19

TCP协议服务端

2019-05-28 09:40:39

TCP协议socket接口

2009-11-27 16:07:10

2010-09-03 13:35:22

什么是DHCP协议

2010-10-25 10:31:51

Oracle函数

2009-11-06 12:59:56

WCF服务通信

2011-04-06 12:41:41

Java异常

2010-09-10 20:13:49

tftp server

2009-07-06 23:23:15

Sybase数据库修复

2010-09-25 13:42:39

配置DHCP服务

2010-09-28 15:46:22

SQL删除重复记录

2010-04-25 17:34:30

负载均衡实现

2009-12-31 15:31:15

ADO.NET特性
点赞
收藏

51CTO技术栈公众号