2011-11-28 331 views
3

當我第一次在Winform應用程序中創建一個HttpWebRequest時,需要10〜30秒來處理第一個請求。隨後的通話時間不到一秒鐘。我寫了一個小程序POC舉例說明本,它由兩個按鈕和文本框2,應用程序的圖像可以在這裏找到(我不能在這裏上傳圖片尚未...):Winform應用程序的第一個Web請求很慢

enter image description here

的應用程序代碼是非常簡單的:

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 = ""; 
    } 
} 

爲什麼花這麼長時間第一次請求?我能做些什麼來加快速度?

+0

你對公共部位或某種形式的本地資源的測試?速度與在瀏覽器中加載相比如何?你確定點擊不是因爲遠程服務器不得不旋轉一些空閒的資源嗎? – Jason

+0

Jason,我正在使用的URL是public(http://www.maxprocess.com.br/status.htm),它是我們公司網站上的一個快速和骯髒的html頁面,只有33個字節(好吧)。當我通過瀏覽器(IE或FF)訪問此頁面時,它會按預期方式立即加載。滯後只在我的WinForm應用程序中。 – tcbrazil

+0

我建議通過探查器運行它,看看你是否能夠深入瞭解所有情況。 – Jason

回答