REVISIÓN: Mensaje de error intermitentes "se ha terminado la conexión" cuando se llama a un servicio Web desde ASP.NET

Seleccione idioma Seleccione idioma
Id. de artículo: 819450 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Cuando llama a un servicio Web de Microsoft ASP.NET desde un ASP.NET aplicación, puede recibir intermitentemente el mensaje de error siguientes:
Se cerró la conexión subyacente: error inesperado de envío.
La pila de llamadas es similar al siguiente:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.
 At System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at 
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at 
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at 
...

Solución

Hay una revisión compatible de Microsoft. Sin embargo, se diseñó para corregir el problema descrito en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Este hotfix puede ser sometido a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a que el siguiente service pack de Microsoft .NET Framework que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con servicios de soporte de cliente de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de los servicios de soporte técnico de Microsoft e información acerca de los costos de soporte, visite el siguiente sitio Web:
http://support.microsoft.com/contactus/?ws=support
Nota en casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

La versión en inglés de este hotfix tiene los atributos de archivo (o atributos de último archivo) mostrados en la siguiente tabla. Las fechas y las horas de estos archivos se muestran en hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria el elemento fecha y hora en el panel de control.
   Date         Time   Version       Size       File name                    Platform
   ----------------------------------------------------------------------------------
   01-May-2003  12:48  1.0.3705.426     20,480  Perfcounter.dll              X86
   01-May-2003  12:48  1.0.3705.426  1,175,552  System.dll                   X86
   01-May-2003  12:48  1.0.3705.426    311,296  System.runtime.remoting.dll  X86
   01-May-2003  12:48  1.0.3705.426    503,808  System.web.services.dll      X86	
Esta revisión se incluye en .NET Framework 1.0 Service Pack 3 y en .NET Framework 1.1 Service Pack 1.

Para obtener más información acerca de cómo obtener el service pack más reciente de .NET Framework 1.0, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
318836Cómo obtener el service pack más reciente de .NET Framework 1.0

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

También puede producirse la mensaje de error que se menciona en la sección "Síntomas" para razones válidas. Por ejemplo, la conexión subyacente puede haber sido cerrada por motivos que quedan fuera del control del cliente. En tales circunstancias, Microsoft .NET Framework se comporta correctamente.

Por ejemplo, si los servicios Web que se denominan se alojan en un software o en un entorno con equilibrio de carga de hardware que contiene los servidores compatibles con HTTP 1.1 y conexiones keep-alive, la conexión puede que haya terminado en el momento en que el cliente intenta volver a utilizar la conexión. Si este error persiste después de aplicar esta revisión, pruebe las siguientes soluciones:
  • Configurar el sitio Web que aloja los servicios Web no para utilizar conexiones keep-alive. Para ello, siga estos pasos:
    1. Abra la consola de administración de Internet Information Server (IIS) y busque el servidor Web.
    2. Haga clic en la ficha sitio Web de la página Propiedades para el sitio Web.
    3. Haga clic para desactivar la de conexiones HTTP abiertas habilitado casilla de verificación.
  • Comprobar que el hardware de equilibrio de carga o el software está configurado correctamente para los requisitos de aplicación.
  • Si no tienen control sobre el entorno de servidor que aloja los servicios Web que está llamando, quizás tenga que deshabilitar keep-alive conexiones en el lado del cliente. Para ello, siga estos pasos:
    1. Establezca la propiedad KeepAlive de la clase HttpWebRequest en false .
    2. Reemplace el método HttpWebRequest en el archivo Reference.cs generado por Visual Studio.NET para el proxy de cliente Web. El código siguiente reemplaza el método HttpWebRequest .
      protected override WebRequest GetWebRequest(Uri uri)
       {
       HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
       
       webRequest.KeepAlive = false;
       
       return webRequest;
       }
      

Referencias

Para obtener más información acerca de cómo obtener .NET Framework 1.1 Service Pack 1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
885055Cómo obtener el Service Pack 1 (SP1) de .NET Framework 1.1

Propiedades

Id. de artículo: 819450 - Última revisión: martes, 6 de noviembre de 2007 - Versión: 2.9
La información de este artículo se refiere a:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.1
Palabras clave: 
kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug KB819450 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 819450

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com