2012-11-27 62 views
2

我有一個奇怪的問題。我將首先解釋一下解決方案的體系結構。當它只應該被調用一次時調用多次存儲過程

我們在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

沒有什麼個人的,但我敢打賭,你什麼都不是WCF或企業庫中的錯誤 - http://www.codinghorror.com/blog/2008/03/the-first-rule-of-programming-its-always -your-fault.html – Bridge

+0

您確定它被多次調用,或者您看到與同一個調用相關的多個事件嗎? –

+0

是的。我們正在運行SQL Server跟蹤實用程序,我們可以看到多次調用。事實上,許多時間在一秒鐘內。 –

回答

0

爲了確保存儲過程實際上被我們自己的源代碼多次調用,而不是其他層,我添加了一個到log4net的調用以將調用記錄到SP。神奇的是,這使問題消失了。我不明白爲什麼。儘管如此,一切都很好。

相關問題