Error cuando el Windows Communication Foundation usa la activación de net.tcp

En este artículo se le ayuda a resolver el error que se produce Windows servicio Communication Foundation usa la activación de net.tcp.

Versión del producto original:   .NET Framework, Windows Communication Foundation
Número KB original:   2026177

Síntomas

Tenga en cuenta el siguiente escenario en Microsoft .NET Framework:

  • Ejecute un servicio Windows Communication Foundation (WCF) con la activación de net.tcp.

  • Si el servicio tarda más de un minuto en procesar una solicitud de una aplicación cliente, se registra el siguiente error:

    Nombre del registro: Sistema
    Origen: SMSvcHost 3.0.0.0
    Fecha:
    Identificador de evento: 8
    Categoría de tarea: Servicio de uso compartido
    Nivel: Error
    Palabras clave: Usuario clásico: EQUIPO DE SERVICIO LOCAL: Descripción: Se produjo un error al enviar un socket duplicado: este controlador se ha filtrado en el proceso. Id.: 2620 Origen: System.ServiceModel.Activation.TcpWorkerProcess/33156464 Excepción: System.TimeoutException: Esta operación de solicitud enviada a no recibió una respuesta dentro del tiempo de espera configurado (00:01:00). El tiempo asignado a esta operación puede haber sido una parte de un tiempo de espera más largo. Esto puede deberse a que el servicio sigue procesando la operación o porque el servicio no pudo enviar un mensaje de respuesta. Considere la posibilidad de aumentar el tiempo de espera de la operación (al convertir el canal o proxy en IContextChannel y establecer la propiedad OperationTimeout) y asegúrese de que el servicio pueda conectarse al cliente.

Causa

Este problema se produce porque el SmSvcHost.exe de administración del servicio de uso compartido de puertos Net.TCP se encuentra fuera de servicio después de un minuto. El valor de tiempo de espera interno es de un minuto. Cuando se envía una solicitud al servicio, el proceso de SmSvcHost.exe crea un enlace de canalización para registrar nuevos canales para comunicarse con el proceso W3wp.exe de Internet Information Services (IIS). El proceso requiere un minuto para crear el enlace de canalización. Por lo tanto, el proceso tiene el tiempo de espera. El tiempo de espera puede resultar de cualquiera de estas condiciones:

  • CPU alta: la CPU se utiliza casi al completo durante un período de tiempo prolongado. Por lo tanto, el servicio de destino no puede procesar solicitudes lo suficientemente rápido.

  • Limitación de servicio: el servicio está alcanzando un acelerador dentro del modelo de servicio.

  • La inicialización del servicio tarda más de 1 minuto.

Solución

  • CPU alta: la CPU se utiliza casi al completo durante un período de tiempo prolongado. Por lo tanto, el servicio de destino no puede procesar solicitudes lo suficientemente rápido.
    Solución: debe modificar el código o agregar recursos para evitar la condición de CPU alta.

  • Limitación de servicio: el servicio está alcanzando un acelerador dentro del modelo de servicio.
    Solución: active los seguimientos de advertencia o error del servicio de destino para identificar este problema. Si la solución tiene varias sesiones activas o varias llamadas simultáneas, modifique la para MaxConcurrentSessions or MaxConcurrentCalls reducir la carga.

  • La inicialización del servicio tarda más de 1 minuto.
    Solución: supervise los seguimientos para ver si la inicialización de la aplicación de servicio tarda más de un minuto. Vea si es posible modificar la lógica de inicialización para reducir este tiempo o use la característica Inicio automático para inicializar el servicio antes de la primera llamada de cliente.

Más información