An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll

StackOverflow https://stackoverflow.com/questions/21699039

문제

I am getting the following error when calling a method in a webservice, not developed by me.

An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll

It does not only happen on my local dev machine, but also on a client's server when the software is deployed.

I am currently using Visual Studio 2010.

도움이 되었습니까?

해결책

After catching the CommunicationException, and looking at the InnerException, I found the following details: The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element. The solution for this problem was to add the following to my config file.

<bindings>
  <basicHttpBinding>
    <binding name="R2MSBulkUploadSoap" allowCookies="true"
             maxReceivedMessageSize="20000000"
             maxBufferSize="20000000"
             maxBufferPoolSize="20000000">
      <readerQuotas maxDepth="32"
           maxArrayLength="200000000"
           maxStringContentLength="200000000"/>
    </binding>
  </basicHttpBinding>
</bindings>

I found this solution from here

다른 팁

Look at MSDN there is a quite description what to do:

Robust client and service applications handle CommunicationException objects that may be thrown during communication. There are also two CommunicationException-derived exception types (FaultException and FaultException) that clients also often expect. Therefore, in order to prevent the generic CommunicationException handler from catching these more specific exception types, catch these exceptions prior to handling CommunicationException.

For other people with this problem, it can be useful, enable log errors in server 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>  

In my case was a serialize error:

How to return a List<object> in WCF

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top