【发布时间】:2018-06-12 02:42:36
【问题描述】:
我的站点正面临对具有不同操作名称的特定 MVC 控制器的不需要的机器人调用。它会导致非性别歧视行为的巨大例外。我们的日志系统几乎充满了错误。
我们决定采用以下方法作为解决方法。
- 有效处理不存在的操作请求,使其不会引发异常
- 限制机器人调用
我们编写了下面的代码来实现这一点。任何人都可以查看该方法。
protected override void HandleUnknownAction(string actionName)
{
if (this.ActionInvoker.InvokeAction(this.ControllerContext,
"ReturnErrorForUnknownAction")) return;
}
public ActionResult ReturnErrorForUnknownAction()
{
return Task.Delay(2000).ContinueWith(t =>
{
return new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound);
}).Result;
}
以上代码工作正常,但不确定“ReturnErrorForUnknownAction”是否是阻塞调用。据我所知,Task.Result 会阻塞当前线程。
我的初衷是在发送404状态之前实现异步延迟。
【问题讨论】:
标签: c# asp.net-mvc task-parallel-library