Необработанное исключение типа System.ServiceModel.CommunicationException произошло в mscorlib.dll

Я получаю следующую ошибку при вызове метода в веб-службе, разработанной не мной.

Необработанное исключение типа System.ServiceModel.CommunicationException произошло в mscorlib.dll

Это происходит не только на моем локальном компьютере разработчика, но и на клиентском сервере при развертывании программного обеспечения.

В настоящее время я использую Visual Studio 2010.


person Community    schedule 11.02.2014    source источник
comment
Когда вы разговариваете с другой машиной где-то в другом месте на планете, самая основная вещь, которая может пойти не так, - это отсутствие связи. Используйте InnerException, чтобы узнать, почему. И обязательно включите трассировку WCF.   -  person Hans Passant    schedule 11.02.2014


Ответы (3)


После перехвата 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>

Я нашел это решение здесь

person Community    schedule 12.02.2014

См. MSDN есть довольно подробное описание, что делать:

Надежные клиентские и служебные приложения обрабатывают объекты CommunicationException, которые могут возникать во время связи. Также существует два типа исключений, производных от CommunicationException (FaultException и FaultException), которых также часто ожидают клиенты. Поэтому, чтобы не дать универсальному обработчику CommunicationException перехватить эти более конкретные типы исключений, перехватите эти исключения до обработки CommunicationException.

person Piotr Stapp    schedule 11.02.2014

Для других людей с этой проблемой может быть полезно включить регистрацию ошибок в сервере 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>  

В моем случае произошла ошибка сериализации:

Как вернуть список ‹object› в WCF

person Dani    schedule 23.07.2018