2011-05-18 24 views
8

Tenemos un WCF pub de configuración/sub usando sesiones fiables a través de netTcpBinding y en una máquina en la que tanto el servicio de publicación y servicio de suscripción están siendo alojados en unas aplicaciones de consola que obtenemos la error anterior. Esta máquina está en un grupo de trabajo. En todas partes, hemos desplegado la máquina en un dominio y funciona bien. Mi conocimiento de wcf es algo limitado y esto me acaba de pasar, así que por favor sean pacientes. ¿Alguien tiene algún consejo sobre cómo resolver este error?Una conexión existente fue cerrada por el host remoto con WCF

La excepción completa es a continuación:

System.ServiceModel.CommunicationException la conexión de socket fue abortado. Esto podría deberse a un error al procesar su mensaje o un tiempo de espera de recepción excedido por el host remoto o un problema de recursos de red subyacente. El tiempo de espera del socket local era '10675199.02: 48: 05.4775807'.
en System.ServiceModel.Channels.SocketConnection.EndRead() en System.ServiceModel.Channels.DelegatingConnection.EndRead() en System.ServiceModel.Channels.TracingConnection.EndRead() en System.ServiceModel.Channels.ConnectionStream. ReadAsyncResult.HandleRead() en System.ServiceModel.Channels.ConnectionStream.ReadAsyncResult.OnAsyncReadComplete (estado Object) en System.ServiceModel.Channels.TracingConnection.TracingConnectionState.ExecuteCallback() en System.ServiceModel.Channels.SocketConnection.FinishRead() en System.ServiceModel.Channels.SocketConnection.AsyncReadCallback (Boolean haveResult, error Int32, Int32 BytesRead) en System.ServiceModel.Diagnostics.Utility.IOCompletio nThunk.UnhandledExceptionFrame (error UInt32, UInt32 BytesRead, NativeOverlapped * nativeOverlapped) en System.Threading._IOCompletionCallback.PerformIOCompletionCallback (UInt32 errorCode, UInt32 numBytes, NativeOverlapped * pOVERLAP) excepción interno:
System.Net.Sockets.SocketException
Un conexión existente forzosamente fue cerrada por el host remoto
en System.ServiceModel.Channels.SocketConnection.EndRead() en System.ServiceModel.Channels.DelegatingConnection.EndRead() en System.ServiceModel.Channels.TracingConnection.EndRead() en System.ServiceModel.Channels.ConnectionStream.ReadAsyncResult.HandleRead() en System.ServiceMo del.Channels.ConnectionStream.ReadAsyncResult.OnAsyncReadComplete (estado Object) en System.ServiceModel.Channels.TracingConnection.TracingConnectionState.ExecuteCallback() en System.ServiceModel.Channels.SocketConnection.FinishRead() en System.ServiceModel.Channels.SocketConnection .AsyncReadCallback (Boolean haveResult, error Int32, Int32 BytesRead) en System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame (error UInt32, UInt32 BytesRead, nativeOverlapped * nativeOverlapped) en System.Threading._IOCompletionCallback.PerformIOCompletionCallback (UInt32 errorCode, UInt32 numBytes, NativeOverlapped * pOVERLAP)

Mis Configuratio vinculantes el es el siguiente:

<netTcpBinding> 
    <binding name="NetTcpBinding_ISubscriptionService" 
      closeTimeout="00:01:00" 
      openTimeout="00:01:00" 
      receiveTimeout="00:10:00" 
      sendTimeout="00:01:00" 
      transactionFlow="false" 
      transferMode="Buffered" 
      transactionProtocol="OleTransactions" 
      hostNameComparisonMode="StrongWildcard" 
      listenBacklog="10" 
      maxBufferPoolSize="524288" 
      maxBufferSize="65536" 
      maxConnections="10" 
      maxReceivedMessageSize="65536"> 
     <readerQuotas maxDepth="32" 
         maxStringContentLength="8192" 
         maxArrayLength="524288" 
         maxBytesPerRead="4096" 
         maxNameTableCharCount="16384" /> 
     <reliableSession ordered="true" 
         inactivityTimeout="00:10:00" 
         enabled="true"/> 
     <security mode="Transport" 
        transport="" 
        clientCredentialType="Windows" 
        protectionLevel="EncryptAndSign" 
        message=""/> 
    </binding> 
</netTcpBinding> 

El punto final es:

<endpoint address="net.tcp://localhost:8000/SubscriptionService" 
      binding="netTcpBinding" 
      bindingConfiguration="NetTcpBinding_ISubscriptionService" 
      contract="SubscriptionService.ISubscriptionService" 
      name="NetTcpBinding_ISubscriptionService" /> 
+0

Algo sucedió en el otro extremo de la comunicación, por lo que debe habilitar el seguimiento (posiblemente tanto en el cliente como en el servidor) para ver si hay una excepción que explique el problema. http://msdn.microsoft.com/en-us/library/ms733025.aspx – carlosfigueira

Respuesta

3

Ok, me enteré de lo que era mi problema.

El servicio de la aplicación cliente se conecta a tenido mxConnection de 10.También estábamos usando SecureMessaging y tuvimos un listenBacklog de 1. Modificado maxConnections a 100 y listBacklog a 200 y todo funciona bien.

2

Para mí, el problema era que no tenía la referencia de servicio correcta (desde una máquina dev a una máquina de producción).

+0

Yo también. Embarazoso, ¿eh? :) – Kyle

Cuestiones relacionadas