C# WCF响应时间峰值

C# WCF响应时间峰值,c#,wcf,C#,Wcf,我有一个带有现成HTTP绑定的WCF服务。它接受一个数据对象,在该对象上运行一些计算,然后返回该对象 一个电话大约需要1.5秒,而且工作正常。但是,并发调用可能会导致完成时间出现巨大峰值(10个并发调用可能需要60秒)。即使我一个接一个地打多个电话,我也会看到时间从1.5秒跳到5秒以上的峰值 我目前已将服务配置为单上下文模式和多并发模式。但我尝试过其他组合,但没有效果 有人能提供这些看似随机的峰值的可能原因吗 多亏了这个问题是由于每次调用时都要执行数据库读取,而只需要执行一次 我添加了一个检查,

我有一个带有现成HTTP绑定的WCF服务。它接受一个数据对象,在该对象上运行一些计算,然后返回该对象

一个电话大约需要1.5秒,而且工作正常。但是,并发调用可能会导致完成时间出现巨大峰值(10个并发调用可能需要60秒)。即使我一个接一个地打多个电话,我也会看到时间从1.5秒跳到5秒以上的峰值

我目前已将服务配置为单上下文模式和多并发模式。但我尝试过其他组合,但没有效果

有人能提供这些看似随机的峰值的可能原因吗


多亏了

这个问题是由于每次调用时都要执行数据库读取,而只需要执行一次


我添加了一个检查,以确保只有在数据尚未加载的情况下才执行数据库读取,这解决了问题。

我们需要更多有关
的详细信息,它接受一个数据对象,并在该对象上运行一些计算,然后返回该对象。
什么计算?您是否使用任何外部资源,如文件流?这个数据有多大?在服务中发布代码。我们需要代码;但是您可以遵循
Async
的概念。这将允许在多个线程上处理客户端/服务器。我无法在服务中发布代码。唯一的外部资源是第一次调用服务时从数据库加载到数组中的数字。我已经在本地运行了代码(不是作为WCF),并且没有发现任何问题。所以我很确定这与WCF服务本身的设置有关。作为一个实验,我刚刚从服务中删除了计算。因此,所有这些工作实际上都是由服务完成的。我仍然能看到响应时间的峰值(大约5秒)。