CORRECCIÓN: Una aplicación basada en Microsoft .NET Framework 2.0 Service Pack 2 que invoca una llamada a un servicio web de forma asincrónica produce una excepción en un equipo que ejecuta Windows 7

Se aplica a
Windows 7 Enterprise Windows 7 Enterprise N Windows 7 Professional Windows 7 Professional N Windows 7 Ultimate Windows 7 Ultimate N

Síntomas

En un equipo con Windows 7, experimenta uno o varios de los síntomas siguientes.

Síntoma 1

Tenga en cuenta el siguiente escenario:

  • Ejecuta un servicio web asincrónico que usa Microsoft .NET Framework 2.0 Service Pack 2 (SP2) en un servidor.

  • La operación asincrónica HttpWebRequest envía una solicitud web al servicio web.

  • El servicio web produce una excepción.

En este escenario, la operación asincrónica HttpWebRequest no llama al método BeginGetResponse ni a la función de devolución de llamada. Sin embargo, la operación asincrónica HttpWebRequest se completa inesperadamente. Entonces, el servicio web deja de responder. Además, el uso de CPU en el servidor puede aumentar hasta el 100 por ciento y, a continuación, el servidor deja de responder.

Síntoma 2

 Tenga en cuenta el siguiente escenario:

  • Ejecuta una aplicación basada en Microsoft .NET Framework 2.0 SP2 que llama a un servicio web mediante los componentes de cliente del servicio web de Microsoft ASP.NET. Por ejemplo, el código de la aplicación lo genera el proceso Wsdl.exe o la aplicación llama a la clase SoapHttpClientProtocol.
  • El cliente invoca la llamada al servicio web de forma asincrónica.
  • El cliente envía una solicitud a un servidor.
  • El cliente recibe entonces una respuesta web con contenido de longitud cero.

Cuando el servicio web intenta procesar esta respuesta en este escenario, se produce una excepción System.ArgumentNullException. Aparece el siguiente mensaje de error:

Nota

El valor no puede ser nulo.

Nota: Este problema no se produce cuando el cliente invoca la llamada al servicio web de forma sincrónica.

Causa

Síntoma 1

Este problema se produce porque el control de excepciones de .NET Framework no tiene en cuenta el caso en el que el método HttpWebRequest.EndGetRequestStream produce una excepción cuando dicha excepción contiene una respuesta del servidor.

Resolución

Información de la revisión

Microsoft ya dispone de una revisión compatible. Sin embargo, está pensada para corregir únicamente el problema que se describe en este artículo. Aplíquelo solo a los sistemas que experimenten este problema específico.

Para descargar esta revisión, visite el siguiente sitio Web de Microsoft Connect:

http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=27977

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Para obtener más información acerca de los problemas que se describen en la sección "Síntoma 1", haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

973134 CORRECCIÓN: El servicio web deja de responder y se produce una excepción cuando ejecuta un servicio web asincrónico basado en .NET Framework 2.0 S

Para obtener más información acerca de los problemas que se describen en la sección "Síntoma 2", haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

973136 CORRECCIÓN: Mensaje de error de excepción ArgumentNullException cuando una aplicación basada en .NET Framework 2.0 S intenta procesar una respuesta con contenido de longitud cero a una solicitud de servicio web de ASP.NET asincrónica: "El valor no puede ser nulo"