【问题标题】:An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dllmscorlib.dll 中出现“System.ServiceModel.CommunicationException”类型的未处理异常
【发布时间】:2014-03-09 01:45:07
【问题描述】:

我在调用非我开发的 web 服务中的方法时收到以下错误。

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

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

我目前正在使用 Visual Studio 2010。

【问题讨论】:

  • 当您与地球上其他地方的另一台机器交谈时,最基本的可能出错的是无法通信。使用 InnerException 找出原因。并确保启用WCF tracing

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


【解决方案1】:

在捕捉到 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找到了这个解决方案

【讨论】:

    【解决方案2】:

    MSDN里面有很详细的说明怎么办:

    健壮的客户端和服务应用程序处理 CommunicationException 通信过程中可能抛出的对象。还有两个 CommunicationException 派生的异常类型 (FaultException 和 FaultException) 客户端也经常 预计。因此,为了防止泛型 CommunicationException 处理程序从捕获这些更具体 异常类型,在处理之前捕获这些异常 通信异常。

    【讨论】:

      【解决方案3】:

      对于其他有此问题的人,它可能很有用,在服务器 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多