2012-08-01 78 views
1

我的情況是這樣的:在asp中的漫長過程

被創建了一個頁面,它將運行一個漫長的過程。 ...此過程包括: - 讀取文件。 Csv,爲文件的每一行都創建一張發票...在這個過程的最後顯示一個成功的消息。

爲此,決定使用updatepanel,以便進程是異步的,並且可以在等待完成進程時顯示UpdateProgress ...爲此,在scriptmanagment的屬性中添加了AsyncPostBackTimeout = 7200(2小時)並且在qa和生產服務器上的應用程序的web.config中也增加了超時。

測試是在localhost中作爲qa服務器進行的,運行良好,在生產服務器上測試功能時出現問題。

這使得: 文件被加載並啓動過程...在此期間運行UpdateProgress,但只需要1或2分鐘之間,並結束執行而不顯示最後一條消息,就像截斷過程一樣。當審查創建的發票只創建文件的前10條記錄(來自50,100或+行的文件)

所以我想幫助我,因爲我不知道什麼可能是錯的。

回答

2

asp.net不適合長時間運行的進程。

IIS的默認頁面超時值爲110秒(對於.net 1.0爲90)。你可以增加這個,但不推薦。

如果你必須這樣做,這裏是設置:

<system.web> 
    ... 
    <httpRuntime executionTimeout="180"/> 
    ... 
<\system.web> 

參考這方面的工作httpRuntime

傳遞給Windows服務,WCF或獨立的EXE。 使用您的頁面從該應用程序獲取進程的狀態。

下面是一個示例,顯示如何使用workflows for long running processes

您將大部分處理從asp.net移出,並釋放其線程以處理頁面請求。

+0

感謝您的評論...我會檢查 – npperez 2012-08-01 13:43:10

相關問題