Después de buscar en Google por un par de días, realmente no puedo resolver el problema descrito. Espero que aquí encuentre una soluciónGetRequestStream arroja la excepción Timeout al azar
Estoy usando un código adjunto cuando llamo al servicio WCF en el mismo servidor. Me sale error de tiempo de espera de forma aleatoria en WebReq.GetRequestStream llamada()
Cuando estoy cheque netstat veo que la conexión permanece abierta, por lo que probablemente no es un problema, pero no sé cómo resolverlo
//request inicialization
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebReq.Method = "POST";
WebReq.ContentType = "application/json; charset=utf-8";
WebReq.ContentLength = buffer.Length;
WebReq.Proxy = null;
WebReq.KeepAlive = false; //also tried with true
WebReq.AllowWriteStreamBuffering = false; //also tried with true
//this produces an error
using (Stream PostData = WebReq.GetRequestStream())
{
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
}
//open and read response
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
WebResp.Close();
//return string
return _Answer.ReadToEnd();
El tiempo de espera se produce principalmente después de unos 10 segundos de tiempo de inactividad, pero también después de cinco o más solicitudes en la fila. Realmente no puedo encontrar un patrón.
¿Qué podría estar mal con este código? ¿Hay alguna otra (mejor) forma de llamar al servicio WCF?
Es un poco mejor, pero todavía tengo tiempos de espera. Entonces, es realmente extraño. Entonces, después del primer enlace, haga clic en Cargando y cargando, y si en ese momento hace clic en el mismo o en cualquier otro enlace en la página, la página se carga en el segundo o más. Entonces, hay algo mal con la creación de la conexión. Como supongo – AnzeR
, no me di cuenta de que estaba en la misma máquina ... Me pregunto si te estás quedando sin subprocesos de grupo de subprocesos: ¿están dentro del mismo proceso? –
Soy bastante nuevo en la programación .net. Han estado programando en PHP desde hace algunos años, y nunca se notan tales problemas. Esto es mucho más fácil. Así que no estoy seguro de qué quiso decir con "subprocesos de fila de subprocesos"? Con una solicitud, creo dos o más esta solicitud HTTP al servicio WCF, por lo que está dentro del mismo proceso/solicitud. ¿Debo usar el almacenamiento en caché para estas solicitudes? – AnzeR