Winform应用程序第一个Web请求很慢

tcb*_*zil 3 c# performance httpwebrequest winforms

当我第一次在Winform应用程序中创建HttpWebRequest时,处理第一个请求需要10~30秒.后续调用不到一秒钟.我写了一个小POC应用程序来举例说明这个,它由两个按钮和2个文本框组成,可以在这里找到应用程序的图像(我还不能在这里上传图像......):

在此输入图像描述

应用程序代码非常简单:

public partial class Form1 : Form
{
    DateTime _start;
    TimeSpan _span;
    int _count = 0;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        _count++;
        _start = DateTime.Now;
        HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(textBox1.Text); ;
        // Added after Conrad's response:
        _request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
        HttpWebResponse _response = (HttpWebResponse)_request.GetResponse(); 
        _response.Close();
        _span = DateTime.Now - _start;
        textBox2.Text += _count.ToString("000") + ": " + _span.ToString(@"mm\:ss\,fff") + "\r\n";
    }

    private void button2_Click(object sender, EventArgs e)
    {
        textBox2.Text = "";
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么第一次请求需要这么长时间?我能做些什么来加快这个速度?

小智 5

如果将proxy属性设置为null,它也可以工作,即使没有禁用逻辑卡也是如此.

来源:HttpWebRequest在SQLCLR中第一次运行缓慢