c#应用程序不能访问互联网,如果我连接到一个VPN

本文关键字:VPN 一个 连接 不能 应用程序 访问 互联网 如果 | 更新日期: 2023-09-27 17:50:19

我正在开发一个应用程序,该应用程序需要持续的互联网连接才能根据规范运行。

我面临的问题是,如果我连接到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时工作。

c#应用程序不能访问互联网,如果我连接到一个VPN

如果您使用的是Microsoft PPTP VPN,则需要取消在VPN连接的TCP/IPv4高级设置中选择"在远程网络上使用默认网关"

由于您试图使用默认网络凭证访问站点,请确保在app.config文件中添加默认代理,并添加cookie容器(听起来很愚蠢,但看起来它也帮助了其他人)。

查看我对这篇文章的回答:如何在。net应用程序中使用IE代理服务器设置及其凭据

相关文章: