webservice valor tiempo pasado operación llamada excedió espera aumentar aumenta c# .net web-services wcf wsdl

valor - aumentar tiempo de espera webservice c#



Tiempo de espera de llamada del servicio web WCF (3)

Estoy consumiendo un servicio web desde una url. Cuando pruebo usando SoapUI, obtengo la respuesta de inmediato (Ver imagen a continuación) y los datos de solicitud que envié llegan al otro extremo.

Entonces, en mi aplicación C # hice lo mismo, consumí el servicio web wsdl y auto generé la clase de proxy. Creo una solicitud basada en esa clase de proxy con exactamente los mismos datos de solicitud que utilicé en SoapUI y envié. Confirmé que en el otro extremo recibieron mis datos con éxito y no se muestra ningún error.

Sin embargo, nunca recibo ninguna identificación y luego de un tiempo obtendría esta excepción:

Error La solicitud HTTP a '' http://someURLWebservice.com/WSoperation '' ha excedido el tiempo de espera asignado de 00: 00: 59.9470000. El tiempo asignado a esta operación puede haber sido una porción de un tiempo de espera más largo.

¿Me estoy perdiendo de algo? Descargué el WSDL y generé el servicio simulado con SoapUI y si hago una llamada a ese servicio web simulado localmente, lo obtengo de inmediato. La identificación vuelve enseguida.

Aquí está mi código:

string serverURL = Settings.Default.ExtensionServiceURL; //Get Proxy class client ext.ExtWSPortTypeClient client = new ext.ExtWSPortTypeClient(); EndpointAddress addr = new EndpointAddress(serverURL); try { client.Endpoint.Address = addr; Uri site = new Uri(serverURL); client.Endpoint.ListenUri = site; ExtensionData eData = new ExtensionData(); client.ChannelFactory.CreateChannel(); Console.WriteLine("Sending Locator Event Request to Web Service"); ext.locatorEventResponse1 resp = await client.locatorEventAsync(eData.GenerateLocatorEventRequest(ev)); } catch (Exception ex) { Console.WriteLine("Error " + ex.Message); } finally { if (client != null) { ((ICommunicationObject)client).Close(); } }


Compruebe la configuración de la cuota del mensaje, es posible que su servicio esté enviando más de lo configurado


Así que terminé configurando Fiddler2 para olfatear mi solicitud de SoapUI y compararla con mi solicitud de aplicación. En el encabezado de solicitud de aplicación, vi lo siguiente:

Content-Type: text/xml; charset=utf-8 SOAPAction: "" Host: engage.ext-inc.com Content-Length: 1036 **Expect: 100-continue**

Eso espera: 100-continue no está en la solicitud de SoapUI que envió correctamente y obtuvo la respuesta. Con esto en mente, tomé la solicitud de SoapUI en Fiddler y compuse una nueva base en ella ... excepto que puse en Expect: 100-continue y adivinen qué, no recibí respuesta.

Al leer sobre esto encontré este enlace

Y listo, al poner ServicePointManager.Expect100Continue = false; en mi código antes de realizar la llamada al servicio web, recibo la respuesta de inmediato.


En una situación similar, comenzaría con lo siguiente:

Pruebe con el WCF Client y capture el archivo de rastreo:

Pruebe con el cliente soapUI y capture el Http Log

  • Borre el registro HTTP soapUI (una de las pestañas en la parte inferior)
  • Envíe el mensaje a través de la solicitud de prueba soapUI
  • Guarde el registro Http

Una vez que tenga la información de seguimiento para ambos clientes, debería poder comparar las transacciones y, con suerte, determinar el origen del problema. En particular, sugiero confirmar las direcciones del servicio en ambos lados y luego comparar el sobre SOAP para asegurarse de que los enlaces WCF se establezcan de manera consistente con las configuraciones soapUI.

Además, también puede usar Fiddler para ver las comunicaciones del servicio web. La siguiente publicación SO proporciona buenos enlaces de referencia. Fiddler y monitoreo del tráfico del servicio web

Espero que esto ayude.
Saludos,