c # — Тайм-аут операции при использовании HttpWebRequest / HttpWebResponse и Streamreader по отдельности

Поэтому в настоящее время я использую системы HttpWebRequest и HttpWebResponse для отправки информации в документ php, а при использовании другой системы использую Streamreader для получения информации из другого документа php. Эти php файлы имеют дело со статистикой из ледяного потока.

Система Запрос / Ответ может быть вызвана из определенных команд, посылая разную информацию с разными экземплярами системы через мой код. Код настраивается следующим образом, а затем изменяется для различных команд:

string newURL = "setStat.php?type=type1&n=" + stats;
HttpWebRequest wrequest = (HttpWebRequest)WebRequest.Create(newURL);
HttpWebResponse wresponse = (HttpWebResponse)wrequest.GetResponse();
Stream resStream = wresponse.GetResponseStream();

Система Streamreader вызывается каждый раз, когда песня из потока Icecast изменяется, чтобы получить новую статистику из текущей песни. Код настроен так:

WebClient web = new WebClient();
using (StreamReader status = new StreamReader(web.OpenRead("icecast.php")))
{
string line = string.Empty;
while ((line = status.ReadLine()) != null)
{
...
}
status.Close();
}

Теперь я использую, чтобы получить сообщение об ошибке «System.Net.WebException: истекло время ожидания операции» после того, как было использовано много команд с запросом / ответом, и эта ошибка попадет в мою строку Streamreader:

using (StreamReader status = new StreamReader(web.OpenRead("icecast.php")))

Затем прошлой ночью я нашел то, что, как я думал, было моим решением этой проблемы с тайм-аутом операции. Я столкнулся с другим вопросом, который предложил использовать:

System.Net.ServicePointManager.DefaultConnectionLimit

Поэтому я добавил это к своему коду в начале моей функции инициализации и установил его равным 10, я подумал, что это будет излишним и будет работать, так как я полагал, что мне действительно нужны только 2, насколько я понял. Казалось, моя проблема исчезла, пока несколько часов назад она не вернулась. Я начинаю задаваться вопросом, не хватает ли мне просто соединений, и мой лимит вызывает это, или есть ли лучший способ заставить эти две отдельные системы работать, не прерывая друг друга. Любые предложения будут высоко ценится.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …