2013-05-10 94 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将被调用的数组中的每个项目。您可以考虑将完整阵列发送到数据库,并在一次调用中进行过滤。