當我第一次在Winform應用程序中創建一個HttpWebRequest時,需要10〜30秒來處理第一個請求。隨後的通話時間不到一秒鐘。我寫了一個小程序POC舉例說明本,它由兩個按鈕和文本框2,應用程序的圖像可以在這裏找到(我不能在這裏上傳圖片尚未...):Winform應用程序的第一個Web請求很慢
的應用程序代碼是非常簡單的:
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 = "";
}
}
爲什麼花這麼長時間第一次請求?我能做些什麼來加快速度?
你對公共部位或某種形式的本地資源的測試?速度與在瀏覽器中加載相比如何?你確定點擊不是因爲遠程服務器不得不旋轉一些空閒的資源嗎? – Jason
Jason,我正在使用的URL是public(http://www.maxprocess.com.br/status.htm),它是我們公司網站上的一個快速和骯髒的html頁面,只有33個字節(
好吧)。當我通過瀏覽器(IE或FF)訪問此頁面時,它會按預期方式立即加載。滯後只在我的WinForm應用程序中。 – tcbrazil我建議通過探查器運行它,看看你是否能夠深入瞭解所有情況。 – Jason