c#如果我连接到VPN,应用程序将无法访问Internet

时间:2014-03-14 11:06:58

标签: c# vpn

我正在开发一个需要持续互联网连接的应用程序,以便按照规范运行。

我面临的问题是,如果我连接到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时使应用程序正常工作。

非常感谢任何帮助,谢谢。

2 个答案:

答案 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