2012-01-06 6 views
1

私はWCF Web APIを使用しています。私はメソッド呼び出しのフラッディングを防ぎたい。私はmaxConcurrentCallsを10に制限しました。しかし、もっと制約が必要です。たとえば、クライアントが3秒で同じメソッドを呼び出す場合、フラッド・コールについて例外をスローする必要があります。また、あるクライアントが同じパラメタで同じメソッドを1分間に10回呼び出す場合は、それを防ぐ必要があります。私はそれを簡単な方法でどうやって行うことができますか?WCFでのフラッディングの防止

+0

ウェブAPIに「maxConcurrentCall」を設定するにはどうすればよいですか? web.configを使って標準のwcfサービスを使うのは簡単ですが、Web APIはどうでしょうか? RouteTable.Routes.MapServiceRouteで提供されているWebApiConfigurationインスタンスでプログラムでこれを行いましたか? – Crixo

+0

@Cristiano私はこの設定をweb.configのserviceBehaviors => serviceThrottling – oruchreis

+0

に追加しました。ありがとうございます。しかしweb.configに追加された動作を特定の "wcf web api"サービス/ apiにどのように関連させますか?あなたが "wcf web api"を使用していることを知っている限り、あなたはサービス/ Web APIを設定ファイルにマッピングしていません。 – Crixo

答えて

3

クライアントがリクエストを行うのを防ぐためにサービス側で行うことは何もありません。大容量を予期している場合は、ロードバランサを前面に置くことによって、サービスエンドポイントがスケールアウトされるようにする必要があります。

セッションごとのインスタンスモードを実装し、同じセッションで呼び出しが多すぎる場合は例外を返すことをお勧めします。これは、依然として個々の通話を処理する必要があることを意味します。

ネットワークロードバランサを使用して余剰リクエストをブロックする方法はありますが、これは起こりそうにないと思います。

関連する問題