.asmx服务:从Web方法内部调用方法多达300次的最佳方法是什么?

时间:2015-08-28 00:53:42

标签: c# asp.net web-services asmx

我有一个现有的Web方法(内置于.net 4.0 asmx),它调用两个不同的数据库来获取数据,在处理数据后,它将一个键作为字符串返回给客户端。  现有功能是从一个表中获取数据并生成密钥并在另一个数据库中检查它,如果它不在第二个数据库中,则它将密钥返回给Web服务的客户端。

现在我们收到了一个更改请求,我们必须更新可以生成多达300个密钥的Web方法。在这种情况下,我们可能需要将这些数据库调用300次,这可能会影响性能。

请建议实施此方法的最佳方法是什么?线程??或其他什么?

限制条件:  服务托管在iis中  内置.net 4.0  使用.asmx模板

{{1}}

以上现有逻辑现在可以获得300个不同的密钥,我可能需要从客户端调用上述Web方法多达300次,这将是一个更大的性能问题

或者我可能需要在Web方法中实现线程,但由于IIS的工作线程,可能会再次出现性能问题。

请建议我应该如何实施Web方法,以便最多可以产生300个密钥的性能影响。

提前致谢

1 个答案:

答案 0 :(得分:0)

只需调用一次数据库并传递所有300个密钥。 像这样的东西:

SELECT Key FROM Table
WHERE Key IN (array of keys)

然后回答你得到了所有已经存在的密钥。并且可以重新生成它们。