2013-03-19 8 views
3

, когда я отправить смс нескольким клиентам он дает ошибку времени операции, и ошибка на HttpWebResponseSystem.Net.WebException: Операция таймаут на HttpWebResponse

я попробовал myReq.Timeout = 50000; myReq.ReadWriteTimeout = 50000;

но дает ту же ошибку ошибка в строке 150
Line 148: myReq.Timeout = 50000;
Line 149: myReq.ReadWriteTimeout = 50000;
Line 150: HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse();
Line 151: System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream());
Line 152: string responseString = respStreamReader.ReadToEnd();

ответ

14

Это вполне может быть проблема:

HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse(); 

WebResponse реализует IDisposable, так что вы должны использовать using заявление для него (и для StreamReader вы создаете из потока). Если вы оставите WebResponse открытым, это приведет к соединению из пула подключений к этому хосту, и вы можете получить таймауты таким образом. Фиксированный код будет выглядеть следующим образом:

string responseString; 
using (var response = myReq.GetResponse()) 
{ 
    using (var reader = new StreamReader(response.GetResponseStream()) 
    { 
     responseString = reader.ReadToEnd(); 
    } 
} 

Это закрывает поток и ответ, даже если исключение выбрасывается, так что вы всегда будете убирать ресурсы (в данном случае отпускания соединение обратно в пул) быстро.

+0

благодарит за сообщение спасибо – user2181428

Смежные вопросы