解决WCF调用时出现错误:“创建MTOM消息读取器时出错”

如题,查询一个数据集,

存储过程返回如:select * from B

中间层定义  public DataSet GetTable(string 查询条件);

客户端定义  DataSet ds = wcfClient.GetTable("")

以前一直正常着,查询也很快速,这两天不知修改到哪了,所有的查询如果返回记录较大时(100条左右),客户端就会出现服务端返回的异常错误“创建MTOM消息读取器时出错”

客户端 app.config 配置如下

<system.serviceModel>

<bindings>

<basicHttpBinding>

<binding name="BasicHttpBinding_IWS_JXC" openTimeout="00:10:00"

receiveTimeout="00:20:00" sendTimeout="00:10:00" maxBufferPoolSize="999999999"

maxReceivedMessageSize="999999999" messageEncoding="Mtom" />

</basicHttpBinding>

</bindings>

<client>

<endpoint address="http://127.0.0.1/JXC_AT/Service/WS_JXC.svc"

binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWS_JXC"

contract="Ref_WS_JXC.IWS_JXC" name="BasicHttpBinding_IWS_JXC" />

</client>

<behaviors>

<endpointBehaviors>

<behavior name="SerializerBehaviour">

<dataContractSerializer maxItemsInObjectGraph="999999999" />

</behavior>

</endpointBehaviors>

</behaviors>

</system.serviceModel>

测试了很多次,终于发现了问题啊!原来是生成的basicHttpBinding配置不正确所致,实现上也不是不正确,只是配置中少了"maxBufferSize="999999999""这一段所致。而且,VS2012还有一个小BUG,就是有时重新生成WCF服务的引用时,这个配置通常会重置,导致这个配置项丢了,请大家一定要注意哟!

<binding name="BasicHttpBinding_IWS_JXC" closeTimeout="00:10:00"

openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"

maxBufferPoolSize="999999999" maxReceivedMessageSize="999999999"

maxBufferSize="999999999"

messageEncoding="Mtom" />

解决WCF调用时出现错误:“创建MTOM消息读取器时出错”

时间: 2024-08-05 12:04:15

解决WCF调用时出现错误:“创建MTOM消息读取器时出错”的相关文章

打开Excel2010时提示错误:向程序发送命令时出现问题!

使用的是正版的Windows7(64位)专业版系统以及正版的Office2010专业版(32位),从去年3月份发现:打开Excel2010时弹出'程序发送命令时出现问题'的对话框,随后无法打开Excel文件的问题,但是 Word 和PowerPoint并没有出现类似问题. 尝试了下面的四种方法都没能得到解决: 1.采用Excel菜单'常规'选项下取消勾选"忽略使用动态数据交换(DDE)的其他应用程序"的方法( article-1296-1.html). 2.取消excel中的加载项的方

C# 之 读取Word时发生 “拒绝访问” 及 “消息筛选器显示应用程序正在使用中” 异常的处理

1.Asp.net中建立Microsoft.Office.Interop.Word.Application时出现 “ 拒绝访问 ” 错误 项目中要实现在服务器端打开一个Word模版文件,修改其内容后再下载到客户端使用,在Asp.net页面中建立Microsoft.Office.Interop.Word.Application对象时出现“拒绝访问”的错误,提示信息如下: 拒绝访问. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的

解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌

错误描述: 1. WCF:调用方未由服务器进行身份验证 2. 无法处理消息.这很可能是因为操作“http://tempuri.org/ISCCLSvc/GetCarriersByWareHouse”不正确,或因为消息包含无效或过期的安全上下文令牌,或因为绑定之间出现不匹配.如果由于未处于活动状态导致服务中止了该通道,则安全上下文令牌无效.若要防止服务永久中止闲置会话,请增加服务终结点绑定上的接收超时. 3.或并发测试时,高并发出现问题2,实际案例:公司测试部门结果是并发到50就会出现问题2错误,

Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ (命名空间)进行反序列化时出错: InnerException 消息是“反序列化对象异常,读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDictionaryRea

Objective-C Runtime 运行时之三:方法与消息

基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在<objc/runtime.h>头文件中找到.方法的selector用于表示运行时方法的名字.Objective-C在编译时,会依据每一个方法的名字.参数序列,生成一个唯一的整型标识(Int类型的地址),这个标识就是SEL.如下代码所示: 1 2 SEL sel1 = @selecto

[ObjectC]Runtime运行时之三:方法与消息

这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制.我们将详细讨论消息的发送及消息的转发. 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在<objc/runtime.h>头文件中找到.方法的selector用于表示运行时方法的名字.Objective-C在编译时,会依据每一个方法的名字.参数序列,生成一个唯一的

Objective-C Runtime 运行时之三:方法与消息(转载)

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理.这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制.我们将详细讨论消息的发送及消息的转发.不过在讨论消息之前,我们先来了解一下与方法相关的一些内容. 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在<objc/runtime.h>头文件中找

[转]Objective-C Runtime 运行时之三:方法与消息

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理.这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制.我们将详细讨论消息的发送及消息的转发.不过在讨论消息之前,我们先来了解一下与方法相关的一些内容. 基础数据类型 SEL SEL又叫选择器,是表示一个方法的selector的指针,其定义如下: 1 typedef struct objc_selector *SEL; objc_selector结构体的详细定义没有在头文件中找到.方法的selector用于

解决android调用IIS Express中的WCF服务时,出现错误400问题

IIS Express仅支持localhost主机名地址访问. 找到IIS Express Config文件下的 applicationhost.confi   修改配置 再来调试android应用,发下已经成功调用 解决android调用IIS Express中的WCF服务时,出现错误400问题,布布扣,bubuko.com