2011-09-07 49 views
1

我有一個asp.net應用程序使用.net 3.5框架,Telerik,並使用IE8測試它。在一個asp.net應用程序中,加載會話中同一頁面的多個實例同步加載而不是異步加載。

我最近收到了一個要求,允許在同一個會話的多個瀏覽器中加載應用程序中的任何頁面。

我們正在使用會話持續頁面加載的一些數據。

看起來,當同一頁面由同一個會話中的兩個或多個瀏覽器加載時,頁面會同步加載,而不是在parellel中加載。我在頁面的page_load事件中添加了日誌記錄。日誌記錄意味着一次僅加載一個頁面。一旦一個瀏覽器的page_load完成後會有一到兩秒的延遲,那麼下一個瀏覽器的page_load會觸發,直到會話中的所有排隊頁面完成。

我最初的想法是,這是一個阻塞問題。我已經查看了asp.net頁面中的代碼以及頁面引用的代碼,這些代碼可能會導致跨多個頁面的阻塞,並且沒有找到任何代碼。

有關可能導致synchonus page_load觸發行爲的任何想法如上所述?它可能是一個IE8問題,或某種類型的阻塞涉及會話?

謝謝。

回答

1

結帳this SO discussion。我相信接受的答案正是你要找的。

+1

謝謝!這個問題似乎是由Session導致的。 *訪問ASP.NET會話狀態是每個會話獨佔的,這意味着如果兩個不同的用戶發出併發請求,則同時授予對每個單獨會話的訪問權限。但是,如果爲同一會話創建兩個併發請求(通過使用相同的SessionID值),則第一個請求將獲得對會話信息的獨佔訪問權限。第二個請求僅在第一個請求完成後執行。 – Josh