我正在开发一个需要持续互联网连接的应用程序,以便按照规范运行。
我面临的问题是,如果我连接到VPN,那么应用程序根本无法访问互联网。
以下是我尝试检查服务器是否可访问的代码的一部分:
try
{
using (var client = new System.Net.WebClient())
{
//var networkCredentials = new NetworkCredential("shumais", "password");
//WebProxy myProxy = new WebProxy("192.168.0.61", 8080) { Credentials = networkCredentials };
//WebProxy myProxy = new WebProxy("192.168.0.61", 8080);
//client.Proxy = WebRequest.GetSystemWebProxy();
IWebProxy proxy = WebRequest.GetSystemWebProxy();
proxy.Credentials = CredentialCache.DefaultCredentials;
client.UseDefaultCredentials = true;
client.Proxy = proxy;
using (var stream = client.OpenRead(WebUrls.URL_BASE_REQUEST))
{
_isServerReachable = true;
}
}
}
catch (Exception)
{
_isServerReachable = false;
}
我有代码使用/不使用代理,现在只需要在连接到任何VPN时使应用程序正常工作。
非常感谢任何帮助,谢谢。
答案 0 :(得分:2)
如果您使用的是Microsoft PPTP VPN,则需要取消选中"在远程网络上使用默认网关"在VPN连接的TCP / IPv4高级设置中。
答案 1 :(得分:0)
由于您尝试使用默认网络凭据访问该站点,请确保将默认代理添加到app.config文件,并添加一个cookie容器(严重听起来很愚蠢,但看起来它正在帮助其他人太)。
查看我对这篇文章的回答:How to use IE proxy server settings and its credentials in .Net Application