2011-12-27 199 views
5

Al llamar a un servicio web alojado en un servidor desde una página aspx recibo el error "La solicitud falló con una respuesta vacía"."La solicitud falló con una respuesta vacía" al llamar a un servicio web

código

en mi página

try { 
    HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create("https://login.erp.com/rodeprovisioning/provisioning.asmx"); 
    request1.Accept = "text/xml"; 
    request1.Method = "POST"; 
    WebProxy proxyObject = new System.Net.WebProxy("http://10.0.0.1:8080/", true); 
    request1.Proxy.Credentials = CredentialCache.DefaultCredentials; 
    string sReturnValue = null; 
    if (string.IsNullOrEmpty(Session["Test"])) { 
     sReturnValue = callservice(); 
     if (sReturnValue == "Success") { 
      ErrorLabel.Text = sReturnValue; 
      Session["Test"] = "True"; 
     } else { 
      ErrorLabel.Text = sReturnValue; 
     } 
    } 

} catch (Exception ex) { 

} 

y en web.config

<system.net> 
    <authenticationModules> 
     <add type = "System.Net.DigestClient" /> 
     <add type = "System.Net.NegotiateClient" /> 
     <add type = "System.Net.KerberosClient" /> 
     <add type = "System.Net.NtlmClient" /> 
     <add type = "System.Net.BasicClient" /> 
    </authenticationModules> 
    <connectionManagement> 
     <add address = "*" maxconnection = "2" /> 
    </connectionManagement> 
    <defaultProxy> 
     <proxy usesystemdefault="True" bypassonlocal = "True" /> 
    </defaultProxy> 
    <webRequestModules> 
     <add prefix = "http" type = "System.Net.HttpRequestCreator"  /> 
     <add prefix = "https" type = "System.Net.HttpRequestCreator"  /> 
     <add prefix = "file" type = "System.Net.FileWebRequestCreator"   /> 
    </webRequestModules> 
    </system.net> 

¿Es un cortafuegos problem.Any sugerencia?

+1

¿Has probado usar Wireshark para saber qué está pasando en el nivel HTTP? –

+0

No jon no he ... – bala3569

+4

Entonces sugiero que debería ser su siguiente paso. No tiene sentido tratar de depurar el cliente si se trata de un problema del lado del servidor o viceversa. –

Respuesta

15

sé que esto es una cuestión de edad, pero no tuvimos la misma excepción ocurre en uno de nuestros entornos de integración:

System.Net.WebException: The request failed with an empty response 

El problema fue que cuando nos cambiamos el hardware del servidor, también cambiaron todo nuestro puntos finales para usar HTTPS. El código que llamaba a los puntos finales no se actualizó, por lo que todavía estaba usando HTTP regular. Aparentemente esta es la excepción que obtienes cuando intentas llamar a un servicio HTTPS como HTTP. Espero que esto ayude a alguien en el futuro.

+0

me ayudó 2 años después! ¡Gracias! – UrsulRosu

-2

En el cliente app.config o web.config compruebe primero la URL del servicio web, si su URL de servicio web tiene certificado de Capa de sockets seguros, luego agregue la misma URL de habilitación de capa de sockets seguros a app.config o web.config. Al igual que este "https://crm.XXXX.com/webServiceName.asmx"

System.NET.WebException: Error de la solicitud con una respuesta vacía

4

me gustaría añadir a lo Andacious declaró. Estaba haciendo una llamada a un servicio web que era https pero cuando miré las propiedades del objeto que realizaba la llamada, en realidad estaba usando http. Así que establecí específicamente la propiedad URL.

Tengo una clase llamada intercambio que hereda de SoapHttpClientProtocol.

interchangeWS = new InterchangeWS(); 
interchangeWS.Url = "https://somesite/interchange.asmx"; 

string x = interchangeWS.SomeMethod("someParameter"); 
Cuestiones relacionadas