2013-05-10 100 views
0

我有一個.asmx Web服務將由第三方客戶端調用。如何避免Web服務超時

該Web服務公開,看起來像下面的方法:

int SaveMessages(int a,int b,int c, SomeArray[] somearray) 

我需要保存上述所有參數到數據庫。

但是,在保存時,我需要將實體SomeArray []中的特定字段保存到數據庫中,爲此我需要檢查該字段的值,然後從另一個表中獲取相應的值,這將會有超過10萬條記錄。 IN prod我害怕服務得到超時,有沒有辦法使這個步驟快速改變字段,以便它不會超時

我寫了一個LINQ查詢來創建要保存的實體:

ar xyz = from x in somearray 
      select new 
      { 
       a= a, 
       b=b, 
       c=c, 
       d= x.p, 
       e = GetAlternateValue(x.q) // this will search a table with more than 100,000 records 
      } 
+0

增加Webservice的'超時'時間 – 2013-05-10 12:37:30

+0

@RohitVyas謝謝,但客戶對此並不感興趣,即使進行了簡單的更改,我們也必須經歷很多過程 – CSharped 2013-05-10 12:40:23

+0

ASMX是一項傳統技術,不應用於新的發展。 WCF應該用於Web服務客戶端和服務器的所有新開發。一個暗示:微軟已經在MSDN上退役了[ASMX Forum](http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads)。 – 2013-05-10 12:41:34

回答

1

看起來像GetAlternateValue將被調用的數組中的每個項目。您可以考慮將完整陣列發送到數據庫,並在一次調用中進行過濾。