限制对ASMX Web服务的调用次数

问题描述:

我们在IIS6中托管了一个asmx Web服务。是否有一种很好的方法来限制单个IP在一段时间内对服务的呼叫数量?我们不希望进行硬性限制(每小时X次),但我们希望能够防止单个用户出现高峰。限制对ASMX Web服务的调用次数

我们正在调查,看看我们的防火墙是否能够限制连接尝试。在我们的防火墙无法限制连接的情况下,有没有一种很好的方式来以编程方式处理这个问题?与其试图提出我们自己的定制解决方案并重新发明方向,是否存在可以使用的现有实施或策略?

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