C# 为什么Powershell cmdlet中的WebRequest要比控制台应用快得多?

C# 为什么Powershell cmdlet中的WebRequest要比控制台应用快得多?,c#,powershell,C#,Powershell,我有以下代码(需要两个字符串参数—要下载的Url和要下载到的文件名): var uri = new Uri(Url); var request = WebRequest.Create(uri); var response = request.GetResponse(); var fileSize = response.ContentLength; var responseStream = response.GetRe

我有以下代码(需要两个字符串参数—要下载的Url和要下载到的文件名):

        var uri = new Uri(Url);
        var request = WebRequest.Create(uri);
        var response = request.GetResponse();
        var fileSize = response.ContentLength;
        var responseStream = response.GetResponseStream();
        var targetStream = new FileStream(FileName, FileMode.Create);
        var buffer = new byte[10000];
        var count = responseStream.Read(buffer, 0, buffer.Length);
        Console.WriteLine("Downloading {0} to {1} ({2} bytes).", uri, FileName, fileSize);
        while (count > 0)
        {
            targetStream.Write(buffer, 0, count);
            count = responseStream.Read(buffer, 0, buffer.Length);
        }
        targetStream.Flush();
        targetStream.Close();
        targetStream.Dispose();
        responseStream.Dispose();
如果它在Powershell Cmdlet中,则需要2秒才能在5MB文件上运行,而如果我运行与控制台应用完全相同的代码,则需要14秒才能下载该文件

我想不出任何可能的原因,为什么会出现这种情况。有人能告诉我是什么原因造成的吗

我已经去掉了错误检查之类的东西,给了一个小的演示应用。哦,拿出代码来写文件并不会减慢速度——它似乎纯粹是在下载速度上。我无法想象为什么下载速度会不同


如果我输入“Console.Writeline(count)”在循环的中间,对于PosiS壳版本,它总是10000,但在控制台侧变化很大。有趣的是,缓冲器经常被填充220或1460字节。

尝试设置<代码>请求。代理< /COD>属性为null。旧问题,但我建议在小提琴手中比较请求,看看是否有任何差异。HTTP请求中的任何错误。