在Global.asax中我的Application_Start代碼需要2-3分鐘才能完成(長的數據庫查詢等)在Global.asax中慢的Application_Start使得死鎖
每當我發佈該網站的新版本,我得到aspnet_isapi.dll上的死鎖和應用程序無法啓動。
它啓動的唯一方法是當我禁用IIS從互聯網訪問,再次重新啓動應用程序&打一個電話到網站(爲了global.asax)工作。
我不明白爲什麼當應用程序啓動時獲取大量頁面/文件請求時發生死鎖。我知道Global.asax上的Application_Start只會觸發一次,我猜所有其他客戶端都會等待事件完成,所以我不認爲它有死鎖的原因。
有什麼想法?
更新:
它需要更多的像4-5分鐘...... 的代碼使數據庫查詢,並將其附加到應用程序變量(供以後使用)。 它是我的專用服務器上的虛擬服務器。只有另一臺機器不需要太多資源。 我得到事件ID 2262 - ISAPI'... \ aspnet_isapi.dll'報告自己不健康,原因如下:'檢測到死鎖'。
有一個SQL查詢需要大部分時間。我可以在不同的進程(Windows服務/等)上執行這個查詢,但問題是,我不明白爲什麼會發生.... 如果將來會發生什麼,我將不得不把一些耗時的代碼在Application_Start裏面?
@Shay,也許你應該考慮在不同的線程上運行應用程序啓動代碼。 – VinayC
@VinayC,問題是應用程序需要在application_start – Shay