mscorlib.dll中发生了未处理的“System.ServiceModel.CommunicationException”类型异常

时间:2014-02-11 10:19:47

标签: visual-studio-2010 c#-4.0 mscorlib

我在Web服务中调用方法时遇到以下错误,而不是由我开发。

  

mscorlib.dll中发生未处理的“System.ServiceModel.CommunicationException”类型异常

它不仅发生在我的本地开发机器上,也发生在部署软件时的客户端服务器上。

我目前正在使用Visual Studio 2010。

3 个答案:

答案 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>  

在我的情况下是一个序列化错误:

How to return a List<object> in WCF