【问题标题】:Why HttpWebRequest.GetResponse() fails after connecting to a VPN?为什么连接到 VPN 后 HttpWebRequest.GetResponse() 失败?
【发布时间】:2012-05-11 07:00:31
【问题描述】:

我正在尝试通过本地 LAN 控制另一个房间的计算机,而不是通过 Internet 来控制,这在这种情况下是一个重要的区别。这是通过发送带有查询字符串的HttpWebRequests 来完成的,该字符串命令远程计算机执行某些操作。命令之一是告诉远程计算机使用 Cisco 的 AnyConnect 客户端连接到 VPN。当它连接时,它应该向它成功连接的控制计算机发送回一个回复。

由于某种原因,HttpWebRequest 的回复将超时。奇怪的是我可以毫无问题地通过互联网发送HttpWebRequests,所以这似乎只是一个本地局域网问题。为了解决这个问题,我创建了一个单独的控制台应用程序,调用它只是为了发送回复。我不确定它有什么不同,但它有效。

这是来自控制台应用程序的代码,它们是主程序中使用的两条相同的行,但无法正常工作。

 static void Main(string[] args)
    {
        // args[0] contains query string ie ?reply=VPNSuccess
        HttpWebRequest httpWebReq = (HttpWebRequest)WebRequest.Create(new  Uri("http://192.168.1.11:1000" + args[0]));
        HttpWebResponse httpWebResp = (HttpWebResponse)httpWebReq.GetResponse();

    }

【问题讨论】:

    标签: c# httpwebrequest httpwebresponse


    【解决方案1】:

    连接 vpn 后,远程计算机可能在不同的子网上有一个新的 IP 地址,无法路由回您。

    如果我从家里将 vpn 连接到公司总部,则在 vpn 连接后,默认情况下我无法再 ping 本地网络上的机器。这可以通过各种设置进行更改。

    【讨论】:

    • 您能解释一下为什么单独的控制台应用程序能够发送回复吗?
    • 不。这只是基于我的 VPN 连接经验的理论。这是一个简单的测试...连接vpn,看看你是否可以来回ping,或者尝试telnet到有问题的端口。
    • 是的,我可以来回ping 没问题。
    猜你喜欢
    • 2015-06-25
    • 2011-06-04
    • 2011-12-21
    • 2021-07-22
    • 2013-10-08
    • 1970-01-01
    • 2013-09-13
    • 2017-04-10
    • 2021-01-28
    相关资源
    最近更新 更多