Я пишу небольшое приложение, которое должно проверить на сервере, существует ли установщик программного обеспечения, и если да, загрузить в файл.
Для этого приложение проверяет веб-сайт на наличие последних номер версии, например 6.13.2.38
с использованием HtmlAgilityPack .
URL-адрес этой версии выглядит примерно так: http://update.xyzsoftware.com/Files/Updates/6.13.2.38/xyzSoftware6_13_2_38_en_FullInstallerx64.exe.
Теперь я написал метод, который просматривает последнюю часть номеров версий, чтобы проверить, есть ли такие версии, как http://update.xyzsoftware.com/Files/Updates/6.13.2.38/xyzSoftware6_13_2_37_en_FullInstallerx64.exe http://update.xyzsoftware.com/Files/Updates/6.13.2.38/xyzSoftware6_13_2_36_en_FullInstallerx64.exe
...
http://update.xyzsoftware.com/Files/Updates/6.13.2.38/xyzSoftware6_13_2_1_en_FullInstallerx64.exe
.
static string checkValidity(string urlToTest)
{
string validityResult = "";
WebRequest request = WebRequest.Create(new Uri(urlToTest));
request.Method = "HEAD";
try
{
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
HttpStatusCode status = response.StatusCode;
validityResult = Convert.ToString(status);
response.Close();
}
}
catch (Exception exception)
{
validityResult = "not OK";
}
return validityResult;
}
То, что я испытываю сейчас, - это то, что я получаю сообщение об исключении для всех протестированных URL-адресов. Попытка получить доступ к исходному (рабочему) URL-адресу в браузере говорит мне The connection was reset
Сначала я испугался и подумал, что я выключил сервер. Но когда я проверил адрес через альтернативное соединение inte rnet, все было в порядке.
В чем может быть причина этого? Возможно, локальный маршрутизатор / брандмауэр, DNS-сервер или удаленный сервер?
Что можно сделать, чтобы избежать такого поведения?
Заранее спасибо.
С уважением, Ларс