Tag: 代理

测试代理设置的首选方法是什么?

我正在处理的程序中的互联网连接有很多麻烦,而这一切似乎都是由代理设置的某些问题产生的。 此时的大多数问题都是固定的,但我现在遇到的问题是我的代理设置测试方法会让一些用户等待很长时间。 这是我做的: System.Net.WebClient webClnt = new System.Net.WebClient(); webClnt.Proxy = proxy; webClnt.Credentials = proxy.Credentials; byte[] tempBytes; try { tempBytes = webClnt.DownloadData(url.Address); } catch { //Invalid proxy settings //Code to handle the exception goes here } 这是我发现测试代理设置是否正确的唯一方法。 我尝试对我们的Web服务进行Web服务调用,但在拨打电话时不需要代理设置。 即使我有伪造的代理设置,它也会工作。 但是,上面的方法没有我可以设置的超时成员,我可以使用DownloadData而不是DownloadDataAsync,因为我需要等待方法完成,以便在继续之前我可以知道设置是否正确在该计划中。 任何关于更好的方法或解决方法的建议都值得赞赏。 麦克风 编辑:我尝试了其他的东西,但没有运气。 我使用DownloadDataAsync方法在一个单独的线程中下载数据,该线程在完成后引发WebClient的DownloadDataCompleted事件。 当我等待事件被调用时,我有一个循环:while(DateTime.Now <downloadStart.AddMinutes(timeout)&&!TestIsDone){}当调用事件时,DownloadDataCompleted事件将TestIsDone成员设置为true。 这里的问题是如果代理设置不好,则永远不会调用Event,不会抛出异常,程序会在继续之前等待整个超时时间。 以下是此方法的代码: public static bool TestProxy(System.Net.WebProxy proxy) { ProxySettingsTestDone = […]

使用套接字的简单Http代理:问题

我正在尝试学习C#中套接字的工作原理。 我的想法是编写一个简单的http代理:这是我的代码: using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text; using System.Text.RegularExpressions; using System.Threading; class Program { static void Main(string[] args) { ThreadPool.SetMaxThreads(1000, 500); ThreadPool.SetMinThreads(500, 250); TcpListener listener = new TcpListener(IPAddress.Any, 8282); listener.Start(); while (true) { Socket client = listener.AcceptSocket(); ThreadPool.QueueUserWorkItem(ProcessSocket, client); } } private static readonly string patternHostPort = @”(Host:\s)(\S+)(:)(\d+)”; private static […]

在Web浏览器控件中设置代理凭据

我正在处理一个遗留代码,其中一个应用程序使用AxSHDocVw.AxWebBrowser ( 而不是 System.Windows.Forms.Control )来打开网页并扩展它以考虑代理。 我在http://www.pinvoke.net/default.aspx/wininet/internetsetoption.html上有以下示例,使用InternetSetOption()来浏览指定的代理并测试它是否有效。 现在的障碍是我尝试了一切,但未能通过以下代码传递用户名和密码: //– Set Proxy Username bool resultF = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_USERNAME, username, username.Length+1); var errorF = Marshal.GetLastWin32Error(); //– Set Proxy Password bool resultG = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_PASSWORD, password, password.Length+1); var errorG = Marshal.GetLastWin32Error(); resultF和resultG返回true并且没有错误但它仍然有效。 有关这里可能发生的事情的暗示吗? 我有什么方法来调试这个? 提前致谢。

透明代理通过https访问时出现SSL错误

在我的公司环境中,有一个透明的代理,需要互联网访问凭证(每四个小时)。 在我的应用程序中,我成功传递了这样的凭据 var client = new WebClient(); client.Credientals = new NetworkCredential(“username”, “password”); string result = client.DownloadString(“http://…”); // this works! 但是,当我的初始请求是“https://”url时,会发生exception抛出:“底层连接已关闭:无法为SSL / TLS安全通道建立信任关系。” 现在我目前的工作是: 捕获访问“https://”url时抛出的WebException 将我的凭据添加到对任意“http://”站点的新请求 (这应该“打开”互联网四小时的窗口) 返回并重新尝试“https://”请求 我想知道是否有更好/更清洁的方法来做到这一点?

以编程方式设置代理地址,端口,用户名,密码

嗨,我需要以编程方式设置IE的代理地址 之前我曾经使用过RedTomahawk.TORActivator,但它没有提供设置需要用户名和密码的代理的选项。 我们如何设置需要用户名和密码的代理 请提供类似的示例 void Setproxy(string ip,string port,string uname,string pwd) { ///Code here }

XMLDocument.Load(url)通过代理

我有一些代码基本上使用XMLDocument.Load(uri)方法读取XML文档,该方法工作正常,但如果通过代理进行调用则不能很好地工作。 我想知道是否有人知道通过代理进行此调用(或达到相同效果)的方法?

.NET代理检测

我遇到.NET检测通过Internet Explorer配置的代理设置的问题。 我正在编写一个支持代理的客户端应用程序,并测试我设置了一个包含9个squid服务器的数组,以支持HTTP和HTTP的各种身份validation方法。 我有一个脚本,可以将IE更新为我选择的任何配置(哪个代理,通过“Auto”,PAC或硬编码进行检测)。 我已经尝试了以下3种方法来通过.NET检测IE配置。 在我看来,我发现.NET选择了错误的代理服务器集。 IE有正确的设置,如果我用IE浏览网页,我可以看到我通过wireshark击中了正确的服务器。 WebRequest.GetSystemWebProxy().GetProxy(destination); GlobalProxySelection.Select.GetProxy(destination); WebRequest.DefaultWebProxy 以下是我的提示: 我的脚本在Web服务器上设置PAC文件,并在IE中更新配置,然后清除IE的缓存 .NET似乎“卡在”某个代理配置上,我必须为.NET设置另一个配置以实现更改。 偶尔它似乎会选择一些随机服务器(我确定它们不是随机的,只是我曾经使用过的一组服务器,并且在一些缓存的PAC文件中)。 在中,我将检查目的地“https://www.secure.com”的代理,我可能已配置IE,因此期望得到“http:// squidserver:18”而它将返回“http” :// squidserver:28“(端口18运行NTLM,28运行没有身份validation)。 所有的鱿鱼服务器都有效。 这似乎不是XP上的问题,只有Vista,2003和Windows 7。 在IE中硬编码代理服务器总是有效 时间总能解决问题 – 如果我离开计算机大约20或30分钟并回来,.NET会选择正确的代理设置,就好像缓存的PAC脚本已过期一样。

.NET的任何良好的分布式代理/服务模型?

我正在寻找实现分布式代理/服务模型的工具……我想我们也可以称之为网格或云计算,但我不确定这个术语是否完全是偶然的。 分布式代理模型是开发人员构建分派给框架的代理并且框架在分布式环境中的某个地方执行代理的模型。 具体来说,我正在寻找一个支持跨网格/云动态分发的框架,但用更持久的服务替换瞬态代理。 这里的目标是最大限度地减少将服务部署到网格/云容器所需的时间和精力。 FWIW,我认为Digipede非常接近这一点,但我对那里还有什么感兴趣。 我的印象是必须考虑assembly分配才能使解决方案可行。

C#TcpClient.Connect通过代理

我一直在高低搜索,但是到目前为止我所看到的一切,人们只是告诉我使用其他方法。 有了这个,我的问题是我正在尝试使用socks 5代理通过TcpClient连接到服务器 我目前的设置是: Client = new TcpClient(); Client.Connect(EndPoint); NetworkStream = Client.GetStream(); Stream = new new BufferedStream(NetworkStream); Stream.Write…//Write Packet information etc 我不确定我是否错过了任何信息,所以如果我有,我会很高兴地更新这个。

如何将代理凭据设置为特定的wcf客户端?

我需要连接到一些公共wcf服务,但我和服务之间有一些代理。 如果我使用默认代理设置,如 要么 HttpWebRequest.DefaultWebProxy 它工作得很好,但我不需要为整个应用程序设置代理设置,我需要为特定连接设置它。 那我该怎么做呢? 我看到了ProxyAddress属性 (client.Endpoint.Binding as BasicHttpBinding).ProxyAddress 但是没有任何凭据属性…我想以某种方式修改HttpWebRequest,但我不知道如何得到它… 解决了 谢谢大家的答案。 AntonK的答案适合解决我的问题。 在这个问题是实际的时候,我以同样的方式解决了它,但没有使用web.config并编写了这个方法 void SetProxySettings(ClientBase client, bool useProxy, string address, int port, string login, string password) where TChannel : class { if (!useProxy) return; var b = client.Endpoint.Binding as BasicHttpBinding; if (b == null) { System.Diagnostics.Debug.WriteLine(“Binding of this endpoint is not BasicHttpBinding”); return; […]