2010-05-19 60 views
2

請求隊列基本的問題,我有IIS 6下運行的ASP.Net應用程序的簡單網頁有兩個單選按鈕和一個提交按鈕。如果我選擇單選按鈕「A」並提交頁面,則會生成一個冗長的PDF文件,這需要大約一分鐘的時間。如果我選擇單選按鈕「B」,則生成一個小的PDF。 (在這兩種情況下PDF都會寫入響應對象,並在我的瀏覽器中打開。)有關IIS/ASP.Net

如果我選擇單選按鈕「A」並提交,則在瀏覽器中點擊紅色X以停止當前請求,然後選擇單選按鈕「B」並重新提交,頁面仍然需要很長時間來處理我的請求。

毫無疑問,我的第一個請求仍然被在服務器上處理,但我不知道IIS和/或ASP.Net如何排隊我的請求,這樣服務器合理使用是所有用戶之間的保證。我是否大致正確地假設發生了這樣的事情?如果是這樣,它是如何完成的?

+1

難道還有別的東西正在阻止?像SQL表上的鎖一樣?嘗試以下操作:而不是創建PDF使用以下操作a和b System.Threading.Thread.Sleep(2000); System.Threading.Thread.Sleep(100);點擊第一個請求後,第二個請求是否還需要更長時間? – 2010-05-19 23:48:58

回答

1

你可能遇到會話鎖定。嘗試運行實驗在多種瀏覽器,即,而不是停止瀏覽器並重新提交,火在不同的瀏覽器(如Firefox和Chrome)將使用單獨的會話,因此不會阻止這兩個請求。

請參閱Concurrent Requests and Session State瞭解原因和解決方法。

+0

感謝您的文章。現在有道理。 – larryq 2010-05-20 23:23:02