2014-12-22 71 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); 
} 

请注意,如果我正在运行fiddler,这会很好地工作,但如果我在fiddler未运行时运行该超时错误(?),则失败。

我可以直接从我的broswer访问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

的Internet选项代理配置我看不出这可能是比开发机器上的代理配置问题的任何其他。我已经使用LINQPad测试了提供的代码和URL,并且成功检索了XML,并且都使用Fiddler运行并且未运行。

您可以通过代理服务器属性设置为null重写的WebClient实例的默认代理配置:

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

这对我来说是有意义的,但它仍然不起作用(尽管使用添加的行将代理设置为null) ,提琴手也不工作)。今晚我会从家里尝试,看看这是否有所作为。 – KerSplosh

+0

你是否通过办公室的代理连接到互联网? – pixelbadger

+0

刚刚检查 - 是的,我们做 – KerSplosh

1

为MAGOS提到这可能是一个代理发行

http://msdn.microsoft.com/en-us/library/system.net.webclient.proxy(v=vs.110).aspx

的代理属性标识与代表此WebClient的对象的远程服务器通信的IWebProxy实例服用。该代理由系统使用配置文件和Internet Explorer局域网设置进行设置。要指定不应该使用代理,请将Proxy属性设置为由GetEmptyWebProxy方法返回的代理实例。

尝试重置IE中

+0

Ive更新了这个问题 - 显然没有端口号 – KerSplosh

+0

所以我更新了我的答案 –