2014-10-06 6 views
0

Я должен написать программу для работы с некоторым веб-сайтом. Для отправки и получения данных на сервере \ с сервера используется HttpWebRequest и HttpWebResponse. Прежде всего, моя программа авторизуется на этом сайте, а затем готовит данные и отправляет их. Когда я запускаю свою программу на ПК разработчика, она отлично работает, без каких-либо проблем, но когда моя программа работает на ПК клиента, это не работает. Я удаленно подключен к ПК клиента, чтобы получить журнал программы и сравнить его с моим журналом. Клиент - наш партнер, и он получает мой пароль для тестирования. Хорошо, я сравниваю журнал, и это то же самое! Единственное различие - ответ на последний запрос: на моем ПК я получаю html-страницу, но клиентский ПК генерирует исключение тайм-аута. Во-первых, я подумал, что проблема заключается в брандмауэре клиента, но как моя программа получает идентификатор cookie аутентификации и информацию об идентификаторе сессии? Я выводил все параметры WebRequest и сравнивал их, но это то же самое, как я уже сказал.Сервер не отвечает на WebRequest

Может кто-нибудь сказать мне, что может быть причиной этой ошибки и как я могу ее решить?

+0

Вы должны написать свой код. – Greg

ответ

0

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

HttpWebRequest request = WebRequest.Create(@"http://stackoverflow.com") as HttpWebRequest; 
request.Credentials = NetworkCredentials(@"username", @"password"); 
request.Timeout = 300; 

if(string.IsNullOrEmpty(request)) 
    throw new Exception("Error in Request"); 

using(var stream = request.GetResponse().GetResponseStream()) 
    using(var writer = File.Create(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)) 
      stream.CopyTo(writer); 

Я настоятельно рекомендую использовать Fiddler или браузер для анализа ответа/запроса. Это должно показать вам большую часть этих деталей.

Без кода мы не можем больше помочь.

+0

Мой код тот же, но я вручную добавляю заголовок и куки. Я уже использую Fiddler. Это действительно отличная программа, моя программа была написана данными, полученными Fiddler (сайт не имеет официального API). – Mixim

+0

Ну, код выше работает неплохо. Попробуйте, чтобы контент, который вы пытались запросить, если он терпит неудачу, может быть проблемой, не входящей в приложение. Если он работает, ваш API будет иметь проблемы. – Greg

+0

Благодарим вас за помощь, но я уже сказал, что я делаю запрос на URL-адрес того же клиента (URL-адрес клиента «http: \\ site.com \ 1234» и url, который я использую, это «http: \\ site. com \ 1234 "), и я использую его логин и пароль. Я получаю html-страницу, но у клиента есть исключение. На моем ПК я использую интернет через прокси, клиент, подключенный к Интернету без него, но я не устанавливаю вручную настройки прокси, моя программа использует по умолчанию. – Mixim

0

Я когда-то сталкивался с той же проблемой, когда пользовался Win XP, и мой клиент использовал Vista. Эти вызовы webrequest и webesponse были внутренне преобразованы в вызовы SOAP и были переданы с использованием одной из dll интернет-исследователя. таймаут по умолчанию в XP был> тайм-аут по умолчанию для запросов Vista. после обсуждения с командой инфраструктуры клиента мы изменили тайм-аут, и именно так проблема была решена. По умолчанию MSDN по умолчанию - 100 секунд.

+0

Я знаю об этом, поэтому я вручную устанавливаю таймаут до 120000 мс, а ОС - тот же самый Win7 – Mixim

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