WCF学习笔记:传递DataTable 报错是因为WCF不支持DataTable数据类型,DataContractSerializer 支持的类型
2011-11-18 13:25
519 查看
最近在学习WCF,想传递从数据库中查询的大量数据到客户端显示,用DataTable做数据载体,结果老是报下面这个错误:
接收对 http://localhost:8731/wcfServices/Mate 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志
上谷歌,找各种原因和解决方案,总结如下:
【1】传输的数据量太大,在配置文件中修改Behaviors节点内容
服务端:
客户端:
【2】WCF不支持DataTable数据类型
默认情况下,WCF 使用 DataContractSerializer 类来序列化数据类型。此序列化程序支持下列类型:
(1)基元类型(如:整数、字符串和字节数组)以及某些特殊类型(如 XmlElement 和 DateTime),这些特殊类型也被视为基元类型。
(2)数据协定类型(用 DataContractAttribute属性标记的类型)。
(3)用 SerializableAttribute 属性标记的类型,包括实现 ISerializable接口的类型。
(4)实现 IXmlSerializable接口的类型。
(5)许多常见集合类型,包括许多泛型集合类型。
老徐的博客有遍文章讲WCF支持的数据类型很详细,推荐给大家参考:http://www.frankxulei.com/?p=183
接收对 http://localhost:8731/wcfServices/Mate 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参阅服务器日志
上谷歌,找各种原因和解决方案,总结如下:
【1】传输的数据量太大,在配置文件中修改Behaviors节点内容
服务端:
<behaviors> <serviceBehaviors> <behavior name="MathServices"> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" /> <dataContractSerializer maxItemsInObjectGraph="65536000"/> </behavior> </serviceBehaviors> </behaviors>
客户端:
<behaviors> <endpointBehaviors> <behavior name="MathServices"> <dataContractSerializer maxItemsInObjectGraph="65536000"/> </behavior> </endpointBehaviors> </behaviors>
【2】WCF不支持DataTable数据类型
默认情况下,WCF 使用 DataContractSerializer 类来序列化数据类型。此序列化程序支持下列类型:
(1)基元类型(如:整数、字符串和字节数组)以及某些特殊类型(如 XmlElement 和 DateTime),这些特殊类型也被视为基元类型。
(2)数据协定类型(用 DataContractAttribute属性标记的类型)。
(3)用 SerializableAttribute 属性标记的类型,包括实现 ISerializable接口的类型。
(4)实现 IXmlSerializable接口的类型。
(5)许多常见集合类型,包括许多泛型集合类型。
老徐的博客有遍文章讲WCF支持的数据类型很详细,推荐给大家参考:http://www.frankxulei.com/?p=183
相关文章推荐
- Phoenix学习笔记 --- phoenix支持的数据类型
- (JAVA SE 学习笔记)Java.SE.第002讲.原生数据类型 (Primitive Data Type)
- (JAVA SE 学习笔记)Java.SE.第003讲.原生数据类型使用陷阱.Pitfall.of.Primitive.Data.Type
- 【北京圣思园学习笔记】第02讲:原生数据类型(Primitive Data Type)
- [javase学习笔记]-6.6 基本数据类型参数与引用数据类型参数的传递过程
- WCF学习笔记——不支持内容类型 text/xml; charset=utf-8
- WebService学习笔记-CXF支持的数据类型
- PHP入门学习笔记之—— PHP支持的数据类型
- 【北京圣思园学习笔记】第03讲:原生数据类型使用陷阱(Pitfall of Primitive Data Type)
- WCF学习笔记——不支持内容类型 text/xml; charset=utf-8
- ARM学习笔记(五)--ARM编译器支持的数据类型及预定义宏
- WF实例学习笔记:(2)通过Workflow 调用 WCF Data Services 获取数据
- WebService学习笔记-CXF支持的数据类型
- [javase学习笔记]-6.6 基本数据类型參数与引用数据类型參数的传递过程
- Android NDK学习笔记6-JNI对引用数据类型的操作
- Python学习笔记之数据类型总结
- C语言学习笔记1-数据类型和标识符
- php学习笔记--数据的类型
- Python 学习笔记1-基本数据类型
- 学习笔记-Geodatabase数据类型