ASP.Net MVC3 - 有没有办法忽略请求?

时间:2012-01-17 08:19:04

标签: asp.net asp.net-mvc tcp

我有一个带有其他API服务的ASP MVC3网站。 当用户传入无效的API或者他们已被列入黑名单时,我希望忽略该响应。 我知道我可以发回404或者传回503,但是如果有人继续投票,那么理想情况下我会忽略响应导致他们的结束超时。因此延迟锤击我的服务器。

这可能在ASP.net MVC3中吗?如果是这样,任何帮助将是最受欢迎的。 谢谢

1 个答案:

答案 0 :(得分:1)

对于你想要的东西,你仍然需要解析请求,所以它总是消耗服务器资源,特别是如果你有一个讨厌的用户每500毫秒发送一个查询......

在这种情况下,您会阻止请求的IP /标头一段时间,例如10分钟,但是在您的负载均衡器上阻止它并防止该请求甚至到达您的应用程序是一个非常好的主意如果你使用亚马逊服务来运行你的服务,这很容易实现,但所有其他云提供商也支持这一点,如果无论如何你使用云托管。

如果您只能使用您的Web应用程序,并且这是一个未经过测试的解决方案,您可以向路由机制添加一条被忽略的路由,如:

routes.IgnoreRoute("{*allignore}", new {allignore=@".*\.ignore(/.*)?"});

并在检查IP被禁止后,使用例如Response.Redirect()简单重定向到您的网站,.ignore路径......或者,为什么不将该请求重定向到google.com只为了它的乐趣?