Dopo aver cercato su Google per un paio di giorni, non riesco davvero a risolvere il problema descritto. Spero che qui trovi una soluzioneGetRequestStream genera un'eccezione Timeout in modo casuale
Sto usando il codice allegato quando chiami il servizio WCF sullo stesso server. Ottengo l'errore di timeout in modo casuale a chiamata WebReq.GetRequestStream()
Quando sono assegno netstat vedo che la connessione rimane aperta, quindi probabilmente c'è un problema, ma non so come risolverlo
//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();
Il timeout viene generato principalmente dopo circa 10 secondi di inattività, ma anche dopo cinque o più richieste nella riga. Non riesco davvero a trovare un modello.
Cosa potrebbe essere sbagliato con questo codice? C'è un altro (migliore) modo per chiamare il servizio WCF?
È un po 'meglio, ma sto ancora ricevendo un timeout. Quindi, è davvero strano. Quindi, dopo il primo clic del collegamento, si sta caricando e caricando e se in quel momento si fa clic sullo stesso o su qualsiasi altro collegamento sulla pagina, la pagina viene caricata nel secondo o giù di lì. Quindi c'è qualcosa di sbagliato nella creazione di Connection. Come suppongo che – AnzeR
non avessi notato che si trovava sulla stessa macchina ... Mi chiedo se sei a corto di thread di thread thread - sono all'interno dello stesso processo? –
Sono abbastanza nuovo nella programmazione .net. Sono programmato in PHP da alcuni anni e non si notano mai problemi del genere. Ci sono cose molto più semplici. Quindi non sono sicuro di cosa intendessi con "thread di thread fuori dal thread"? Con una richiesta creo due o così questa richiesta HTTP al servizio WCF, quindi è in corso con lo stesso processo/richiesta. Dovrei usare la cache per queste richieste? – AnzeR