1. “maxReceivedMessageSize”
在用系统服务正式发布WCF后,很长一段时间,都很正常。直到一个比较复杂的功能开发。我的系统主要是和Oracle数据库开发,其中写了一个比较复杂的功能模块,返回很大的数据集,在客户端调用时一直报错,大约是“范围超过了65536”,从字面意思就很容易理解啦,maxReceivedMessageSize的默认值是65536,肯定某个方面超过了这个预设值。从网上查资料,果不其然,maxReceivedMessageSize这个选项就是表示中间传输的消息大小的。如果要传输的数据太大的话,就要增加这个值啦。我加了三个0,变成65536000,就不会出现开始的那个问题啦。当然,根据具体需要,你也可以改成其他更大或更小的值。
2. “<security mode="None" />”
在用TCP端口发布时,必须用这个选项。
3. “maxBufferSize”
修改了上述两个选项后,又在很长的一段时间,都很正常。直到一个问题出现。哈哈,这个问题的错误代码我没记住,主要的原因就是上传的数据太大啦,必须增大这个值。哈哈
4. “DataTable”作为返回值,这个没成功,后来改用DataSet作为返回值
5. “数组”作为返回值,这个正是用到啦,一些旧的系统还在用。现在当然不要啦。
6. “泛型”作为返回值,这个还要修改一些地方,得不偿失,我就改成自己写的类(包括数组或泛型 属性)作为返回值啦,
7. “自己写的类”做回返回值,现在主要的方式,也可以说是新开发应用的唯一的方式。
8. 千万别忘引用“System.ServiceModel”