wcf配置 MaxReceivedMessageSize 问题

问题描述

最近调用wcf互操作时服务端提示如下信息:Themaximummessagesizequotaforincomingmessages(65536)hasbeenexceeded.Toincreasethequota,usetheMaxReceivedMessageSizepropertyontheappropriatebindingelement.应该是说序列化后传输的数据量大于65536,要设置MaxReceivedMessageSize扩大可传输的数据量,但是这个属性我在客户端服务端都配置过了,具体如下WCF服务端配置在IIS6中,win2k3sp2系统,配置如下:<bindings><basicHttpBinding><bindingname='basicHttpBindingConfig'maxBufferSize='2147483647'maxBufferPoolSize='2147483647'maxReceivedMessageSize='2147483647'messageEncoding='Mtom'transferMode='Streamed'><readerQuotasmaxDepth='2147483647'maxStringContentLength='2147483647'maxArrayLength='2147483647'maxBytesPerRead='2147483647'maxNameTableCharCount='2147483647'/></binding></basicHttpBinding></bindings>

在客户端是用代码进行配置的,如下:m_BasicHttpBindingConfig=newBasicHttpBinding{Name="basicHttpBindingConfig",MaxBufferSize=2147483647,MaxBufferPoolSize=2147483647,MaxReceivedMessageSize=2147483647,//MessageEncoding=WSMessageEncoding.Mtom,TransferMode=TransferMode.Streamed,ReaderQuotas=newSystem.Xml.XmlDictionaryReaderQuotas{MaxDepth=2147483647,MaxStringContentLength=2147483647,MaxArrayLength=2147483647,MaxBytesPerRead=2147483647,MaxNameTableCharCount=2147483647},Security=newBasicHttpSecurity{Mode=BasicHttpSecurityMode.None,Transport=newHttpTransportSecurity{ClientCredentialType=HttpClientCredentialType.None,ProxyCredentialType=HttpProxyCredentialType.None,Realm=""},Message=newBasicHttpMessageSecurity{ClientCredentialType=BasicHttpMessageCredentialType.UserName,AlgorithmSuite=SecurityAlgorithmSuite.Default}},SendTimeout=newTimeSpan(0,30,0)};

两个问题:1)其中的maxReceivedMessageSize都是配置过的,但是调用时数据量增大时还是会报超65536的错,难道是IIS或OS的问题么?2)另外,还有一个问题是,明明服务端已经配置过messageEncoding='Mtom',客户端代码配置//MessageEncoding=WSMessageEncoding.Mtom编译是没错,但是运行是根本无法和wcf服务端进行交互的,这个太奇怪了,不得解啊

解决方案

解决方案二:
又看了一下tracelog,上面在报maxReceivedMessageSize之前,还有一个警告:<E2ETraceEventxmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><Systemxmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>524312</EventID><Type>3</Type><SubTypeName="Warning">0</SubType><Level>4</Level><TimeCreatedSystemTime="2012-12-24T06:33:07.5293604Z"/><SourceName="System.ServiceModel"/><CorrelationActivityID="{21907a84-e748-4e8e-8b91-92d21c9e25cc}"/><ExecutionProcessName="w3wp"ProcessID="2828"ThreadID="6"/><Channel/><Computer>BXSERVER</Computer></System><ApplicationData><TraceData><DataItem><TraceRecordxmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"Severity="Warning"><TraceIdentifier>http://msdn.microsoft.com/zh-CN/library/System.ServiceModel.EvaluationContextNotFound.aspx</TraceIdentifier><Description>Configurationevaluationcontextnotfound.</Description><AppDomain>/LM/W3SVC/803627/Root/EPS.Business.WCF-3-130008043855298980</AppDomain></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent>

说没找到配置评估上下文,这样是不是我写的配置就一直没起作用啊?配置应该不会有问题吧?配置如下:<?xmlversion='1.0'encoding='utf-8'?><configuration><configSections><sectionGroupname='applicationSettings'type='System.Configuration.ApplicationSettingsGroup,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'><sectionname='TTS.WCF.Properties.Settings'type='System.Configuration.ClientSettingsSection,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'requirePermission='false'/></sectionGroup></configSections><system.diagnostics><sources><sourcename='System.ServiceModel.MessageLogging'switchValue='Warning,ActivityTracing'><listeners><addtype='System.Diagnostics.DefaultTraceListener'name='Default'><filtertype=''/></add><addname='ServiceModelMessageLoggingListener'><filtertype=''/></add></listeners></source><sourcename='System.ServiceModel'switchValue='Warning,ActivityTracing'propagateActivity='true'><listeners><addtype='System.Diagnostics.DefaultTraceListener'name='Default'><filtertype=''/></add><addname='ServiceModelTraceListener'><filtertype=''/></add></listeners></source></sources><sharedListeners><addinitializeData='C:app_messages.svclog'type='System.Diagnostics.XmlWriterTraceListener,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'name='ServiceModelMessageLoggingListener'traceOutputOptions='Timestamp'><filtertype=''/></add><addinitializeData='C:app_tracelog.svclog'type='System.Diagnostics.XmlWriterTraceListener,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'name='ServiceModelTraceListener'traceOutputOptions='Timestamp'><filtertype=''/></add></sharedListeners><traceautoflush='true'/></system.diagnostics><system.web><compilationdebug='true'/><httpRuntimemaxRequestLength='2097151'/></system.web><!--部署服务库项目时,必须将配置文件的内容添加到主机的app.config文件中。System.Configuration不支持库的配置文件。--><system.serviceModel><diagnostics><messageLogginglogMalformedMessages='true'logMessagesAtTransportLevel='true'/></diagnostics><bindings><basicHttpBinding><bindingname='basicHttpBindingConfig'maxBufferSize='2147483647'maxBufferPoolSize='2147483647'maxReceivedMessageSize='2147483647'messageEncoding='Mtom'transferMode='Streamed'><readerQuotasmaxDepth='2147483647'maxStringContentLength='2147483647'maxArrayLength='2147483647'maxBytesPerRead='2147483647'maxNameTableCharCount='2147483647'/></binding></basicHttpBinding></bindings><services><!--BusinessDepartmentService--><servicename='EPS.EntityCollection.Business.BusinessDepartmentService'><endpointaddress=''binding='basicHttpBinding'bindingConfiguration='basicHttpBindingConfig'name='BusinessDepartmentService'contract='EPS.EntityCollection.Business.IBusinessDepartmentService'></endpoint><endpointaddress='mex'binding='mexHttpBinding'contract='IMetadataExchange'/><host><baseAddresses><addbaseAddress='http://192.168.1.1/TTS.WCF/BusinessDepartmentService.svc'/></baseAddresses></host></service><!--BusinessPostService--><servicename='EPS.EntityCollection.Business.BusinessPostService'><endpointaddress=''binding='basicHttpBinding'bindingConfiguration='basicHttpBindingConfig'name='BusinessPostService'contract='EPS.EntityCollection.Business.IBusinessPostService'></endpoint><endpointaddress='mex'binding='mexHttpBinding'contract='IMetadataExchange'/><host><baseAddresses><addbaseAddress='http://192.168.1.1/TTS.WCF/BusinessPostService.svc'/></baseAddresses></host></service></services><behaviors><serviceBehaviors><behavior><!--为避免泄漏元数据信息,请在部署前将以下值设置为false并删除上面的元数据终结点--><serviceMetadatahttpGetEnabled='True'/><!--要接收故障异常详细信息以进行调试,请将以下值设置为true。在部署前设置为false以避免泄漏异常信息--><serviceDebugincludeExceptionDetailInFaults='true'/></behavior></serviceBehaviors></behaviors></system.serviceModel></configuration>

解决方案三:

解决方案四:
第一个问题你搞定了?第二个问题:参考这个http://stackoverflow.com/questions/3636341/configuration-evaluation-context-not-found-warning-on-wcf-traceTheevaluationcontextnotfounderror(orintraceswiththeidentifierSystem.ServiceModel.EvaluationContextNotFound)isgenerallycausedbyusingaconfigurationelementdefinedinalibrarythatisnotincludedintheapplication’sconfigurationasanextension.
解决方案五:
引用2楼fangxinggood的回复:

http://blog.csdn.net/fangxinggood/article/details/6031072

还是不行,报一样的错.我再部署了一下,测试后发现在tracelog最开头有一个警告:<E2ETraceEventxmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><Systemxmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>589832</EventID><Type>3</Type><SubTypeName="Warning">0</SubType><Level>4</Level><TimeCreatedSystemTime="2012-12-24T07:58:56.8369460Z"/><SourceName="System.ServiceModel"/><CorrelationActivityID="{00000000-0000-0000-0000-000000000000}"/><ExecutionProcessName="w3wp"ProcessID="3428"ThreadID="8"/><Channel/><Computer>BXSERVER</Computer></System><ApplicationData><TraceData><DataItem><TraceRecordxmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"Severity="Warning"><TraceIdentifier>http://msdn.microsoft.com/zh-CN/library/System.ServiceModel.Activation.WebHostNoCBTSupport.aspx</TraceIdentifier><Description>Extendedprotectionisnotsupportedornotenabledonthisplatform.PleaseinstalltheappropriatepatchandenableitifyouwantextendedProtectionsupportforhttpswithwindowsauthentication.</Description><AppDomain>/LM/W3SVC/2064611869/Root-3-130008095261362870</AppDomain><Source>System.ServiceModel.Activation.MetabaseSettingsIis6/9952002</Source></TraceRecord></DataItem></TraceData></ApplicationData></E2ETraceEvent>

解决方案六:
引用3楼book_frank_xl的回复:

第一个问题你搞定了?第二个问题:参考这个http://stackoverflow.com/questions/3636341/configuration-evaluation-context-not-found-warning-on-wcf-traceTheevaluationcontextnotfounderror(orintraces……

谢谢!!,还是没搞定,这个extension不知道怎么配....T_T
解决方案七:
<bindings><basicHttpBinding><bindingname='basicHttpBindingConfig'maxBufferSize='2147483647'maxBufferPoolSize='2147483647'maxReceivedMessageSize='2147483647'messageEncoding='Mtom'transferMode='Streamed'><readerQuotasmaxDepth='2147483647'maxStringContentLength='2147483647'maxArrayLength='2147483647'maxBytesPerRead='2147483647'maxNameTableCharCount='2147483647'/></binding></basicHttpBinding></bindings>这玩意应该写在客户端

时间: 2024-10-11 07:45:51

wcf配置 MaxReceivedMessageSize 问题的相关文章

WCF 配置服务 演示

1.搭建IIS(具体步骤略)2.服务契约如下: namespace JianKunKing.NewVersion.Service { // 注意: 使用"重构"菜单上的"重命名"命令,可以同时更改代码.svc 和配置文件中的类名"NewVersionService". //[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.

编写WCF服务时右击配置文件无“Edit WCF Configuration”(编辑 WCF 配置)远程的解决办法

原文:编写WCF服务时右击配置文件无"Edit WCF Configuration"远程的解决办法 今天在看<WCF揭秘>书中看到作者提出可以在一个WCF Host应用程序的App.Config文件上右击, 通过弹出的" Edit WCF Configuration"(编辑WCF配置)选项来利用GUI界面编辑WCF的配置信息. 但是我在尝试的时候并没有找到这个右键菜单,开始还以为作者弄错了,但又尝试了一会后便发现了窍门. 右键App.Config文件默认

求助:关于多域名WCF配置出错问题

问题描述 当只有一个域名(如www.a.cn)指向程序时,一切ok当另外一个域名(如a.cn)也指向程序时,html页面可以访问,但是wcf出错错误提示:此集合已经包含方案http的地址.此集合中每个方案中最多只能包含一个地址请高手指点一下,万分感谢! 解决方案 解决方案二:helpup!解决方案三:你们用的是配置文件还是代码配置服务及客户端的?把配置相关的发来看看啦解决方案四:关于多域名WCF配置出错问题,我也遇到了,不知现在楼主解决了吗,有什么好的办法

WCF 配置服务 (02)

作者:jiankunking 出处:http://blog.csdn.net/jiankunking 配置服务概述 • 在设计和实现服务协定后,即可配置服务. 在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址.服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型. • 配置服务的类型 – 使用配置文件配置 –  在代码中强制配置 • 实际上,编写配置是 WCF 应用程序编程的主要部分. • 使用配置文件配置WCF服务 – 通过使用配置文件配置 Windows Co

WCF配置心得_其它相关

根据蒋金楠老师的博文所说的, WCF的终结点有三个要素组成,分别是地址(Address).绑定(Binding)和契约(Contract),简记可写成Endpoint = ABC. 地址:地址决定了服务的位置,解决了服务寻址的问题. 绑定:绑定实现了通信的所有细节,包括网络传输.消息编码,以及其他为实现某种功能对消息进行的相应处理.绑定的类型包括BasicHttpBinding.WsHttpBinding.NetTcpBinding等. 契约:契约是对服务操作的抽象,也是对消息交换模式以及消息结

[WCF 4.0新特性] 默认绑定和行为配置

对于传统的WCF配置系统,无论是绑定的配置还是行为(服务行为和终结点行为)都必须具有一个名称.而正是通过整个配置名称,它们才能被应用到目标对象(终结点或者服务)上.而在实际的项目开发中,绝大部分服务或者终结点都具有相同的绑定和行为,如果能够定义一种默认的绑定和行为,这无疑会简化我们的配置.WCF4.0为此提供了一个新的特性以支持默认绑定和行为的配置. 一. 默认绑定配置 在传统的配置方式下,如果我们需要对终结点的绑定(不论是系统绑定还是自定义绑定)进行定制,我们都需要配置一个"具名"的

WCF工程返回值太长如何解决

问题描述 已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的MaxReceivedMessageSize属性.web.config配置文件:<?xmlversion="1.0"?><configuration><appSettings><addkey="aspnet:UseTaskFriendlySynchronizationContext"value="true"/&g

WCF客户端和服务器时间不一致,导致通道建立失败的问题)

本文转载:http://www.cnblogs.com/bcbr/articles/2288374.html   最近,经常有客户反应,前天还用的好好的系统,今天就不能用了. 考虑到系统近来没有做过改动和升级操作,所以从客户的机器环境入手解决,最后发现客户端的日期时间和服务端的日期时间有较大差异,将客户端机器修改成和服务端的日期时间一致后,系统恢复正常. 查了一下资料,原来WCF安全校验通道,在建立时,会将客户端和服务端的时间进行对比,如果差异超过一定范围,通道建立工作就会失败:这个时间范围默认

WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿

在上面一篇文章中,我们对不同版本的IIS,以及ASP.NET得的实现机制进行了详细而深入的分析.在介绍IIS7.0的时候,我们谈到,HTTP.SYS+W3SVC实现了基于HTTP的请求监听,在此基础上引入了以下三组网络监听器(Listener)和监听适配器(Adapter),实现了基于TCP.Named Pipes和MSMQ的网络监听,图1揭示了IIS7的总体结构. TCPListener|TCP Listener Adapter NamedPipes Listener|Named Pipes