小编sta*_*cky的帖子

使用 IPv6 的 WebRequest 与使用 IPv4 和 IPv6 的服务器相比非常慢

我有一台机器配置为默认使用 IPv6。

我的服务器在本地的 IPv4 机器上。


我的问题:

  • 当我启动下面的代码时,它会在 21 秒内执行。
  • 当我将 IPv6 更改为 IPv4 时,代码在 127 毫秒内执行。

错误在哪里?

 [TestMethod()]
        public  void Test()
        {
            string url = "myurlserverIPv4";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Proxy = null;

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    reader.ReadToEnd();
                }
            }

        }
Run Code Online (Sandbox Code Playgroud)

提前致谢

编辑 1:机器回复其 ipv6 地址

编辑 2:按照“ user3193469 ”的建议我做了额外的测试

  • 使用 IPv4 地址,代码在 80 ms 内执行

  • 通过IP地址到主机名的映射,代码在80毫秒内用主机名执行。固定的

  • 在主机文件中没有映射,代码在 21ms 内执行。

所以这是一个主机名解析问题。

c# performance webrequest

5
推荐指数
0
解决办法
763
查看次数

标签 统计

c# ×1

performance ×1

webrequest ×1