繁体   English   中英

c#WebClient调用在.NET 3.5中有效,但在.NET 4.0中无效

[英]c# WebClient call works in .NET 3.5 but not in .NET 4.0

使用VS2010,我遇到以下问题。 当针对.NET 3.5构建此文件时,它可以正常工作。 在针对.NET 4.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中出现“无法连接到远程服务器”失败。 再次,它在.NET 3.5中正常工作。 我尝试使用我的凭据代替默认凭据,但这也不起作用。 这是我们要连接的内部服务器。

有人对我可以做些什么有任何想法吗?

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

发现解决方案后,我获得了更多信息。 无论.NET版本如何,此代码均可在我们的公司总部(位于欧洲国家/地区)工作,而在美国却不行。 原因是由于防火墙设置导致默认凭据在.NET 4.0中不可接受。 将正确代理的IP输入代码后,它就可以在美国使用。

事实证明,它仅在美国的某些计算机上在.NET 3.5中工作。 此解决方案使其可以在.NET 3.5和.NET 4.0中工作。 我们已经决定,试图弄清楚为什么版本之间存在差异并不是我们要扎根的任务。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM