c#WebClient调用在.NET3.5中工作,但在.NET4.0中不工作

c#WebClient调用在.NET3.5中工作,但在.NET4.0中不工作,c#,.net,.net-4.0,.net-3.5,webclient,C#,.net,.net 4.0,.net 3.5,Webclient,使用VS2010,我有以下问题。在针对.NET3.5构建此文件时,它运行良好。在针对.NET4.0进行构建时,我们得到一个错误 string url = "http://internal_url"; WebClient wb = new WebClient(); wb.Credentials = CredentialCache.DefaultNetworkCredentials; wb.Proxy.Credentials = CredentialCache.DefaultCredentials;

使用VS2010,我有以下问题。在针对.NET3.5构建此文件时,它运行良好。在针对.NET4.0进行构建时,我们得到一个错误

string url = "http://internal_url";
WebClient wb = new WebClient();
wb.Credentials = CredentialCache.DefaultNetworkCredentials;
wb.Proxy.Credentials = CredentialCache.DefaultCredentials;
wb.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET LR 1.0.3705;)");
Stream stream = wb.OpenRead(url);
此操作失败,在.NET 4.0中出现“无法连接到远程服务器”。同样,它在.NET3.5中运行良好。我试着用我的凭证代替默认凭证,但也不起作用。这是我们正在尝试连接的内部服务器


有人知道我能做些什么来实现这一点吗?

事实证明,这是我们全球设置的代理问题

在解决方案被发现后,我得到了更多的信息。该代码在我们的公司总部(总部位于欧洲国家)有效,无论是.NET版本,但在美国却不起作用。原因是防火墙设置使默认凭据在.NET 4.0中不可接受。一旦将正确代理的IP输入到代码中,它就可以在美国工作

事实证明,它在.NET3.5中只在美国的一些机器上运行。此解决方案使其在.NET3.5和.NET4.0中工作。我们已经决定,试图找出版本之间存在差异的原因并不是我们想要执行的任务

长话短说-如果遇到此问题,请检查代理设置,并研究使用代理的IP地址,而不是默认设置