2014-12-22 2 views
0

Я пытаюсь понять, почему простой вызов фида работает только тогда, когда у меня открыт скрипт.Доступ к XML-каналу работает только в том случае, если работает скрипт

Я посмотрел на ссылки ниже, но ни один из ответов не кажется, применяются:

HttpWebRequest doesn't work except when fiddler is running

HttpWebRequest only works while fiddler is running

http://blogs.telerik.com/fiddler/posts/13-02-28/help!-running-fiddler-fixes-my-app-

Мой код очень прост, и насколько как я вижу, он должен просто заполнить переменную содержимым файла xml:

using (var client = new WebClient()) 
{      
    text = client.DownloadString(path); 
} 

Обратите внимание, что это работает отлично, если я запускаю скрипт, но с ошибкой таймаута (?), Если я запускаю его, пока скрипт не работает.

Я могу получить доступ к файлу xml непосредственно из моего браузера - так что разрешения и доступ тоже не являются проблемой.

http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml 

добытого из Скрипач:

HTTP/1.1 200 OK 
Via: 1.1 varnish, 1.1 ZTMG01 
Connection: Keep-Alive 
Proxy-Connection: Keep-Alive 
Transfer-Encoding: chunked 
Age: 19 
Date: Mon, 22 Dec 2014 15:23:47 GMT 
Content-Type: text/xml 
ETag: "dce1c05f259961aeac88cebcdfdbeebe" 
Server: AmazonS3 
x-amz-id-2: C6oNmRATZO4E7eNiyPhyCOhqT45Mb9Wp0XXaU8KsBQf84gYeNzM9OPAOa9YBNFsL4DGsPSEs5Cw= 
x-amz-request-id: 0CE21B93AC8DDC15 
Last-Modified: Mon, 22 Dec 2014 15:22:31 GMT 
X-TTL-RULE: 8 
X-Cacheable: Yes. Cacheable 
X-TTL: 60.000 
X-Backend: proxy 
X-Varnish: 10.76.2.236 
X-Backend-Url: http://s3-eu-west-1.amazonaws.com/tfl.pub/Serco/livecyclehireupdates.xml 
X-Hash-Url: /tfl.pub/Serco/livecyclehireupdates.xml 
Access-Control-Allow-Origin: * 
X-Varnish: 181999945 181994842 
X-Banning: 
X-Cache: HIT 
X-Cache-Hits: 4 

Кто-нибудь есть какие-либо идеи, почему это может быть?

+0

Может ли это быть прокси-проблемой? WebClient может быть «случайно» потреблять настройки прокси-сервера Fiddler, не позволяя ему работать. Можете ли вы опубликовать вывод Fiddler RAW для успешных вызовов? – pixelbadger

+0

Обновлен мой вопрос с выходом RAW. Ничего неприятного, насколько я могу видеть здесь – KerSplosh

ответ

5

Я не могу понять, как это могло быть ничем иным, чем проблема настройки прокси-сервера на компьютере разработчика. Я тестировал поставляемый код и URL-адрес с помощью LINQPad и успешно извлекал XML, как с запущенным Fiddler, так и без него.

Вы можете переопределить настройки прокси по умолчанию экземпляра WebClient, установив Proxy свойства нуля:

string path = "http://www.tfl.gov.uk/tfl/syndication/feeds/cycle-hire/livecyclehireupdates.xml"; 

using (System.Net.WebClient client = new System.Net.WebClient()) 
{ 
    client.Proxy = null; 
    client.DownloadString(path); 
} 

Обратите внимание, что настройки прокси-сервер для Null будет всегда перепускной Фидлер.

+0

Это имеет смысл для меня, но его все еще не работает (хотя с добавленной строкой, устанавливающей прокси-сервер в нуль) , скрипач тоже не работает).Сегодня вечером я попробую из дома посмотреть, не изменилось ли это. – KerSplosh

+0

Вы подключаетесь к Интернету через прокси в своем офисе? – pixelbadger

+0

Просто проверено - и да, мы делаем – KerSplosh

1

как упомянуто магос это может быть проблемой прокси-

взяты из http://msdn.microsoft.com/en-us/library/system.net.webclient.proxy(v=vs.110).aspx

Свойство прокси идентифицирует экземпляр IWebProxy, который обменивается данными с удаленными серверами от имени этого объекта WebClient. Прокси устанавливается системой, используя конфигурационные файлы и настройки локальной сети Internet Explorer. Чтобы указать, что прокси-сервер не должен использоваться, установите для свойства Proxy экземпляр прокси, возвращаемый методом GetEmptyWebProxy.

попробовать сбросить настройки прокси в настройках Internet ИЭ

+0

Ive обновил вопрос - явно нет номера порта там – KerSplosh

+0

поэтому я обновил свой ответ –

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