2

我有一个奇怪的问题。我将首先解释一下解决方案的架构。

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

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

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

我不知道是什么原因造成的。它是被多次调用的同一个存储过程。我查看了 IIS 日志,设备没有多次调用 Web 服务,所以它一定是内部错误。我已经查看了 Web 服务和服务层的实现,并且没有循环会导致存储过程被多次调用。

我将不胜感激对此的任何见解。我不知道是什么原因造成的,但我怀疑 WCF 或企业库中存在错误。

谢谢阅读。

4

1 回答 1

0

为了确保存储过程实际上是从我们自己的源代码而不是其他层调用的,我添加了对 log4net 的调用以记录对 SP 的调用。神奇的是,这让问题消失了。我不明白为什么。一切都很好,但结局很好。

于 2012-11-30T10:39:55.443 回答