C# 对不完整请求的DOS攻击ASP.NET

C# 对不完整请求的DOS攻击ASP.NET,c#,asp.net,iis,ddos,C#,Asp.net,Iis,Ddos,我有一个应用程序,如果它收到不完整/缓慢的http请求,就会被关闭。我调试并发现原因是,当我尝试访问HTTP请求时,应用程序会暂停,直到请求完成。我需要一种方式来告诉我在请求中是否完整。类似于Request.IsComplete() 编辑 例如: protected void Application_BeginRequest() { Log(Request["Query"]); } 请求尝试永久获取请求[Query] 我创建了一个客户机,可以抽象如下

我有一个应用程序,如果它收到不完整/缓慢的http请求,就会被关闭。我调试并发现原因是,当我尝试访问HTTP请求时,应用程序会暂停,直到请求完成。我需要一种方式来告诉我在请求中是否完整。类似于
Request.IsComplete()

编辑

例如:

    protected void Application_BeginRequest()
    {
         Log(Request["Query"]);
    }
请求尝试永久获取请求[Query]

我创建了一个客户机,可以抽象如下

        socket.Connect(uri.Host, uri.Port);
        SendRequest(socket, uri, payload, bytesToTruncate);
        socket.Close();

如果我进入调试模式,在
SendRequest()
之后,在调用
socket.Close()
之前,请求进入
Application\u BeginRequest()
,但在调用
socket.Close()
之前,我将无法访问
Application\u BeginRequest中的
请求[“Query”]
。它基本上停止并等待
套接字。Close/Request
完成

请显示如何“访问HTTP请求”。我认为http.sys不会在请求完成之前转发请求。编辑:没关系,它会这样做。给我们一个最小的完整的可验证的例子来重现这个问题(你甚至可以通过向我们展示一个设置计时器的操作来完成它,并且在计时器完成之前不会返回);这样我们就可以确定你的代码不是问题所在。你能发布导致暂停的代码吗?编辑后,对发生的事情有了更多的了解。我希望您现在理解这个问题,
Log
指的是什么?