我在Web服务中调用方法时遇到以下错误,而不是由我开发。
mscorlib.dll中发生未处理的“System.ServiceModel.CommunicationException”类型异常
它不仅发生在我的本地开发机器上,也发生在部署软件时的客户端服务器上。
我目前正在使用Visual Studio 2010。
答案 0 :(得分:8)
在捕获CommunicationException并查看InnerException之后,我发现了以下详细信息:已超出传入邮件的最大邮件大小配额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性。 此问题的解决方案是将以下内容添加到我的配置文件中。
<bindings>
<basicHttpBinding>
<binding name="R2MSBulkUploadSoap" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
</basicHttpBinding>
</bindings>
我从here
找到了这个解决方案答案 1 :(得分:0)
看看MSDN有一个很好的描述该怎么做:
强大的客户端和服务应用程序处理CommunicationException 在通信过程中可能抛出的对象。还有两个 CommunicationException派生的异常类型 客户端也经常使用(FaultException和FaultException) 期望。因此,为了防止泛型 CommunicationException处理程序从捕获这些更具体 异常类型,在处理之前捕获这些异常 的CommunicationException。
答案 2 :(得分:0)
对于其他有此问题的人,此功能很有用,请在服务器WebConfig中启用日志错误:
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData= "SdrConfigExample.e2e" />
</listeners>
</source>
</sources>
</system.diagnostics>
在我的情况下是一个序列化错误: