迴圈內使用webservice

  • 377
  • 0

工作上遇到的問題,放在測試都正常,但一上正式環境查詢資料時總是Load很久
 

首先來看錯誤訊息
 

System.Threading.ThreadAbortException: 執行緒已經中止。 
於 System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle, Byte* pinnedBuffer, Int32 len, SocketFlags socketFlags) 
於 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode) 
於 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) 
於 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int

發生錯誤的地方是我在foreach迴圈內呼叫webservice去資料庫查詢資料
但是資料庫資料量太多,有些會查詢比較久,所以IIS會自動中斷操作

所以總是會出現這個錯誤

後來去stackoverflow找,發現要在web.config的<system.web>區段內加上這段就可以解決
 

 <httpRuntime maxRequestLength="2097151" executionTimeout="600"/>