После поиска в течение нескольких дней я действительно не могу решить описанную проблему. Надеюсь здесь найдут решение
Я использую прикрепленный код при вызове службы WCF на том же сервере. Я получаю ошибку тайм-аута случайно при вызове WebReq.GetRequestStream ()
Когда я проверяю netstat, я вижу, что соединение остается открытым, поэтому, возможно, есть проблема, но я не знаю, как ее решить
//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();
Тайм-аут генерируется в основном после 10 секунд простоя, но также и после пяти или около того запросов в строке. На самом деле не могу найти шаблон.
Что может быть не так с этим кодом? Есть ли другой (лучший) способ вызова службы WCF?