2012-01-17 39 views
2

我有一個ASP MVC3網站,其餘的API服務。 當用戶傳入一個無效的API或者他們已被列入黑名單時,我希望忽略該響應。 我知道我可以發回404或回傳50​​3,但如果有人繼續投票我,我理想情況下會忽略導致超時結束的響應。因此延遲錘擊我的服務器得到。ASP.Net MVC3 - 有沒有辦法忽略請求?

這是可能的ASP.net MVC3內?如果是這樣,任何幫助將不勝感激。 謝謝

+0

你的意思是忽略**請求**或不**返回響應**。 – gideon 2012-01-17 08:26:07

+0

我的意思是後者。不發送迴應。理想情況下,服務器端的處理時間/負擔最少。 – 2012-01-17 08:58:09

回答

1

你想要的東西,你仍然需要解析請求,所以它總是會消耗服務器資源,特別是如果你有一個惱人的用戶發送每500ms查詢...

在在這種情況下,您會阻止請求的IP /頭部,例如10分鐘,但在您的負載平衡器上阻止該請求並阻止該請求甚至到達您的應用程序是一個非常好的主意,這很容易如果您使用亞馬遜服務來運行您的服務,但是所有其他雲提供商都會支持這一點,如果您想通過任何方式使用雲託管服務。該IP被禁止

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

,入住後:

如果你只能用你的web應用程序,這是沒有經過測試的解決方案,你可以忽略的路由添加到喜歡你的路由機制,使用例如Response.Redirect()簡單重定向到您的網站,到.ignore路徑...或者,爲什麼不將該請求重定向到google.com只是爲了它的樂趣?

+0

我正在使用Azure來承載它。不確定我目前有權訪問負載平衡器。這與重定向到404不相似嗎?除了客戶會更快? – 2012-01-17 09:46:58

+0

在Azure中,您可以通過REST調用訪問整個API,在Windows Azure流量管理器上爲其提供讀取,因爲這是它們處理請求的圖層...您可能可以輕鬆地將阻止的IP添加到它並停止讓它們查詢您的應用。 – balexandre 2012-01-17 09:55:16

+0

謝謝。我會看看這個。 – 2012-01-19 12:11:12

相關問題