2012-06-07 185 views
0

我一直在調查一個問題,現在任何幫助都會很大。asp.net批處理

簡而言之,我必須在後臺運行一個asp.net進程。所以當我回發時,它會處理幾分鐘。我嘗試了在回發批處理中返回另一個進程並返回的標準方法。但是,我的批處理過程使用ASP.NET控件(特別是ReportViewer)進行處理。這意味着它無法在另一個線程中運行。我們如何解決這個問題。這是否意味着無法在批處理模式下生成報告?

作爲一種折中,我很高興如果回發等待作業完成。但我想在客戶端顯示狀態。爲此,而回發是我試圖讓ajax調用服務器來獲得status.But問題在於,對於一​​個會話,您只能使用單個線程(UI)。所以當我做一個ajax調用時,它會等待回發完成並釋放線程。

我在我束手無策,因爲這是一種簡單而明顯的要求

感謝

+0

嗨,我基於過濾器批量渲染多個報告 - 所以它需要超過10米 – josephj1989

+0

是什麼使報告生成變慢?我的意思是細節。 100%是一個黑匣子,還是可以將這個過程扼殺成平行任務? –

+0

嗨,假設我們有一個需要美國狀態和日期範圍以及其他參數的報告。現在使用可以輸入一個狀態列表和一組日期範圍。我們必須爲每個參數組合生成報告,最多可以有60個報告。絕對需要幾分鐘時間。而且這些不能並行運行,因爲控件正在渲染報告,因此報告生成必須在主線程中完成 – josephj1989

回答

0

enter image description here我的第一個想法。

你可以剝離一個背地面線程並將HTTPContext傳遞給它嗎?那麼你可以發送響應給客戶端,而主線程正忙?

但是這個artcle Asynchronous Pages in ASP.NET 2.0可能有一個更好的模式給你。