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

我们在IIS6中托管了一个asmx Web服务。 是否有一种方法可以限制单个IP在一段时间内对服务的呼叫数量? 我们不想设置硬限制(每小时X次),但我们希望能够防止来自单个用户的峰值。

我们目前正在调查我们的防火墙是否能够限制连接尝试。 如果我们的防火墙无法限制连接,是否有一种以编程方式处理此问题的好方法? 而不是试图提出我们自己的自定义解决方案并重新发明轮子,是否可以使用现有的实施或策略?

ASMX Web服务几乎没有可扩展性。 如果您有任何选择,您应该使用WCF。

您可能能够编写一个从每个操作中调用的方法,该方法将查看调用者IP,签入数据库,并在该IP连接太多时抛出SoapFault。 但这就是所有的一切。 你可以从SoapExtension中做到这一点,但你必须非常小心。