iT邦幫忙

0

ASP.NET網站大量運算連線逾時

leo226 2014-07-09 22:33:5011660 瀏覽

請教各位先進:
我用DataMining的演算法做一個Web的搜尋介面,由於DataMining運算時間較久,故當網頁loading超過5分鐘,網頁就會出現如下圖的畫面,[連線已逾時,伺服器localhost花了太久時間還是無回應]。若將演算法的參數調整為可以在5分鐘以內運算完畢的話,網頁是可以正常運作的,經測試門檻值是落在5分鐘這個關卡。

試著去調整的參數有:
1.IIS的連線限制=>連線逾時(秒) 7200

2.ASP.NET的Web.config

3.SQL搜尋指令:sqlcmd.CommandTimeout = 0;

不過都沒有解決此問題,不知各位先進是否有經驗遇過處理大量運算造成網頁錯誤的問題及解決方法?是否可提供小弟一些方向參考。

謝謝各位指教了。

2 個回答

2
sheauren
iT邦新手 4 級 ‧ 2014-07-11 15:42:55
最佳解答

建議不要在網頁直接處理這種時間太久的動作
背景作業在用ajax的方式檢查是否處理完畢(利用db flag)會比較不影響網頁正常運作
背景作業可以有一支固定的程式來處理,簡單作法動作如下:

  1. 主機用一隻.net程式依賴FileWatcher可以偵測指定目錄是否有新檔案進來(=處理訊號),當有檔案新增則開始處理長時間動作(參考資料可以從db取出),於處理完畢更新db flag.
  2. 網頁決定開始執行時,將待處理資料丟到db之後,於指定目錄送個key file或任意檔案驅動背景程式,之後網頁可以用ajax方式確認是否執行完畢(忙碌的畫面持續顯示),完畢在進行後續動作。

上述方式網頁比較不會卡住背景程式也可以擁有比較高的執行權限。

leo226 iT邦新手 5 級 ‧ 2014-10-07 10:50:49 檢舉

我用chrome瀏覽器就不會發生逾時的問題了,其它瀏覽器都會,謝謝

0
fillano
iT邦超人 1 級 ‧ 2014-07-10 09:54:53

要不要改成用ajax的方式來取得結果?這樣就不必怕碰到頁面timeout的問題。如果使用jQuery,它可以設定timeout參數。

我要發表回答

立即登入回答