应该只调用一次,多次调用存储过程

时间:2012-11-27 11:18:46

标签: sql wcf iis-7 enterprise-library

我有一个奇怪的问题。我先解释一下解决方案的体系结构。

我们在Android和iOS上都有一个移动应用程序,由WCF RESTful Web服务提供服务。 Web服务由IIS 7托管,它们是作为Windows服务运行的服务层的代理。 Web服务使用WCF TCP绑定与服务层进行通信。

服务层调用SQL Server 2008实例中的存储过程。我们使用的是.NET Framework 4和Microsoft Enterprise库5.0版。许多Web服务调用都会导致存储过程调用。

现在,问题。其中一个Web服务导致单个Web服务调用在一秒钟内多次调用单个存储过程。我们在SQL Server上使用了跟踪实用程序,我们可以看到使用相同的参数集多次调用存储过程。这在我们的网站上造成了巨大的性能问题。

我不知道造成这种情况的原因。它是多次调用的相同存储过程。我查看了IIS日志,并且设备没有多次调用Web服务,因此它必须是内部错误。我已经查看了Web服务和服务层的实现,并且没有循环会导致多次调用存储过程。

我很感激对此有任何见解。我不知道造成这种情况的原因,但我怀疑WCF或企业库中存在错误。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

为确保存储过程实际上是从我们自己的源代码中多次调用而不是通过其他某个层调用,我添加了对log4net的调用以记录对SP的调用。奇迹般地,这使问题消失了。我不明白为什么。尽管如此,一切都很好。