2012-01-17 20 views
2

私は残りのAPIサービスを持つASP MVC3ウェブサイトを持っています。 ユーザーが無効なAPIを渡すか、ブラックリストに登録されている場合、私はその応答を無視したいと考えています。 私は404を返すか、503を返すことができると知っていますが、誰かが私をポーリングし続けると、タイムアウトが発生するという反応を無視するのが理想です。したがって、私のサーバーが叩かれるのを遅らせる。ASP.Net MVC3 - リクエストを無視する方法はありますか?

これはASP.net MVC3内で可能ですか?もしあれば、どんな助けでも大歓迎です。 はで...あなたに

をあなたが望むもののために

+0

**リクエスト**を無視するかどうか**は返信**を返しますか? – gideon

+0

私は後者を意味しました。応答を返信しない。理想的には、サーバー側の処理時間/負担が最小限に抑えられます。 –

答えて

1

をありがとう、それは常に、サーバリソースを消費しますので、あなたはまだあなたがクエリを送信迷惑なユーザーごとに500ミリ秒を持っている特別な場合は、要求を解析する必要がありますこのような状況では、要求のIP /ヘッダーを例えば10分間ブロックすることになりますが、ロードバランサ上でブロックすることをお勧めします。 Amazonサービスを使用してサービスを実行している場合は達成できますが、クラウドホスティングを使用している場合は、他のすべてのクラウドプロバイダもこれをサポートします。

あなただけのWebアプリケーションを使用することができ、これはテストされていないソリューションであれば、あなたのようなあなたのルーティングメカニズムに無視された経路を追加することができます:IPが禁止されていることを

routes.IgnoreRoute("{*allignore}", new {[email protected]".*\.ignore(/.*)?"}); 

とチェックインの際、サイトへのResponse.Redirect()などの簡単なリダイレクトを.ignoreパスに送信するか、またはそのリクエストをgoogle.comにリダイレクトするだけで楽しいのですか?

+0

私はAzureを使ってホストしています。ロードバランサに現在アクセス権があるかどうかわかりません。これは404にリダイレクトするのと似ていないのですか?それ以外はクライアントの方が速くなりますか? –

+0

Azureでは、REST呼び出しを通じてAPI全体にアクセスできます。Windows Azure Traffic Managerでは、要求を処理するレイヤとして読み込みを行います。おそらく簡単にブロックされたIPを追加して、応用。 – balexandre

+0

ありがとうございます。私はこれを調べるでしょう。 –

関連する問題