2010-08-27 85 views
1

我們在IIS6中託管了一個asmx Web服務。是否有一種很好的方法來限制單個IP在一段時間內對服務的呼叫數量?我們不希望進行硬性限制(每小時X次),但我們希望能夠防止單個用戶出現高峯。限制對ASMX Web服務的調用次數

我們正在調查,看看我們的防火牆是否能夠限制連接嘗試。在我們的防火牆無法限制連接的情況下,有沒有一種很好的方式來以編程方式處理這個問題?與其試圖提出我們自己的定製解決方案並重新發明方向,是否存在可以使用的現有實施或策略?

回答

1

ASMX web服務幾乎沒有可擴展性。如果您有任何選擇,您應該使用WCF。

您可能可以編寫一個方法從每個操作中調用,它將查看調用方IP,檢入數據庫,並在該IP連接太多時拋出SoapFault。儘管如此,所有這一切都是存在的。你可能可以通過SoapExtension做到這一點,但你必須非常小心。

+0

我們無法將此服務遷移到WCF,但我們將使用WCF開發任何新服務。由於這個問題是針對asmx的,因此我在這裏提出了另一個關於WCF的問題:http://stackoverflow.com/questions/3588866/limiting-number-of-calls-to-an-wcf-web-service – nivlam 2010-08-28 00:09:59