WCF The underlying connection was closed: An unexpected error occurred on a receive

前端 未结 4 1441
忘掉有多难
忘掉有多难 2021-01-12 02:42

I am using a RestClient app to communicate with my WCF service .and I am getting the following exception

The underlying connection was closed: An unexpected         


        
相关标签:
4条回答
  • 2021-01-12 02:58

    I dont't know if is the same error, but in my case, the exception was in Json, that cannot convert the Date value, because it was empty.

    DateTime values that are greater than DateTime.MaxValue or smaller than DateTime.MinValue when converted to UTC cannot be serialized to JSON.

    The trace viewer was very useful to find the issue.

    0 讨论(0)
  • 2021-01-12 03:03

    I had similar errors coming from the depths of my http bindings in WCF.

    client -> The underlying connection was closed: An unexpected error occurred on a receive.

    client -> Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

    server (got this with the help of "procdump") -> The I/O operation has been aborted because of either a thread exit or an application request

    Eventually after many hours I came upon the HTTP.sys logging (in C:\WINDOWS\System32\LogFiles\HTTPERR ) and I discovered that the WCF self-hosted service connections were being forcibly dropped (on purpose) because of an obscure configuration issue (minimum send rate bytes per second). Unfortunately it took another few hours to reconfigure that (you cannot do it via "netsh http add timeout" so you have to do it within the app or within IIS when not self-hosted).

    0 讨论(0)
  • 2021-01-12 03:08

    Its common (generic) message.

    You should use Trace Viewer Tool (SvcTraceViewer.exe) to find out server error

    0 讨论(0)
  • 2021-01-12 03:13

    Configure WCF tracing in your app.config / web.config and check Error.svclog (it will be created near your binary file) for details. In my case it was because of using Auto-property initializer (property without setter) - a feature from C# 6.0

    <Message>No set method for property 'FailedCount' in type 'MyProject.Contracts.Data.SyncStatusByVersion'.</Message>
    <StackTrace>   at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String message, Type type)
                   at WriteSyncStatusByVersionToJson(XmlWriterDelegator , Object , XmlObjectSerializerWriteContextComplexJson , ClassDataContract , XmlDictionaryString[] )
                   ...
    </StackTrace>
    

    To configure WCF tracing:

    <system.diagnostics>
        <sources>
          <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true" >
            <listeners>
              <add name="xml"/>
            </listeners>
          </source>
          <source name="System.ServiceModel.MessageLogging">
            <listeners>
              <add name="xml"/>
            </listeners>
          </source>
          <source name="myUserTraceSource" switchValue="Information, ActivityTracing">
            <listeners>
              <add name="xml"/>
            </listeners>
          </source>
        </sources>
        <sharedListeners>
          <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="Error.svclog" />
        </sharedListeners>
    </system.diagnostics>
    
    0 讨论(0)
提交回复
热议问题