C# 为什么IIS过滤掉使用原始TCP套接字发送的HTTP POST请求,并在写入后立即关闭
我尝试向简单的.NETWebAPI应用程序发送许多简短的独立http POST请求。在循环中创建请求,并使用新的TCP连接发送每个请求。这里重要的是,每个http请求只写入服务器而不等待任何响应。所以循环是基于操作的:C# 为什么IIS过滤掉使用原始TCP套接字发送的HTTP POST请求,并在写入后立即关闭,c#,iis,asp.net-web-api,tcp,C#,Iis,Asp.net Web Api,Tcp,我尝试向简单的.NETWebAPI应用程序发送许多简短的独立http POST请求。在循环中创建请求,并使用新的TCP连接发送每个请求。这里重要的是,每个http请求只写入服务器而不等待任何响应。所以循环是基于操作的: 创建请求 开放式插座 写请求 闭合插座 在这种情况下,托管在IIS 10上的webapi应用程序(ASP.NET MVC 5.2.7)不会接收任何传入请求。控件永远不会转移到ApicController中的相应方法。我注意到,在套接字写入和关闭之间添加额外的睡眠(例如100m
- 创建请求
- 开放式插座
- 写请求
- 闭合插座
我在ASP.NET Core 2.1中测试过类似的webapi应用程序。Kestrel按其应有的方式处理所有请求。将这些请求发送到简单的TcpListener服务器也可以工作。我猜IIS会检测到套接字过早关闭。如果您的问题是延迟,那么,您可以尝试使用异步/等待。Windows Socket API可能会认为您正在使用那些短的实时TCP连接执行DDoS攻击。根据KestReor和TCPListEnter的测试,我认为这不是套接字限制,而是IIS特性。也许这是可以控制的。