У меня есть следующий код, и после ~ 60 его вызовов (20 одновременных подключений) начинается тайм-аут.если я уменьшу время ожидания с 10 минут до 1 минуты, они начнут отсчитывать время ~ 34 загрузок.что дает?я знаю, что вы можете получить это, если вы не закроете свой ответ должным образом, но я определенно закрываю его:
//===============================================================================
/// <summary>
/// Executes the request and returns the response as a byte array. Useful if the
/// response should return a file.
/// </summary>
private static byte[] GetResponse(HttpWebRequest webRequest)
{
//---- declare vars
HttpWebResponse response = null;
List<byte> buffer = new List<byte>();
int readByte;
//---- try to get the response, always wrap it.
try
{ response = webRequest.GetResponse() as HttpWebResponse; }
//---- catch all
catch (Exception e)
{
if (response != null) { response.Close(); }
throw new ConnectionFailedException("Failed to get a response", e);
}
try
{
//---- if the response is ok
if (response.StatusCode == HttpStatusCode.OK)
{
//---- get the response stream
using (Stream stream = response.GetResponseStream())
{
//---- read each byte, one by one into the byte buffer
while ((readByte = stream.ReadByte()) > -1)
{
buffer.Add((byte)readByte);
}
//---- close the stream
stream.Close();
response.Close();
}
//---- return the buffer as a byte array
return buffer.ToArray();
}
//---- if the request wasn't auth'd
else if (response.StatusCode == HttpStatusCode.Forbidden || response.StatusCode == HttpStatusCode.Unauthorized)
{
if (response != null) { response.Close(); }
throw new AuthenticationFailedException(response.StatusDescription);
}
//---- any other errors
else
{
if (response != null) { response.Close(); }
throw new ConnectionFailedException(response.StatusDescription);
}
}
finally { if (response != null) { response.Close(); } }
}
//===============================================================================
мысли?
также я создаю его сTimeOut и ReadWriteTimeout установлены на 10 минут:
// ---- создаем веб-запрос HttpWebRequest webRequest = WebRequest.Create (url) как HttpWebRequest;
// ----установить 10-минутный тайм-аут webRequest.Timeout = 600000;webRequest.ReadWriteTimeout = 600000;