C# 测试、分析、防止和处理对ASP.NET Web API的大量或垃圾邮件请求

C# 测试、分析、防止和处理对ASP.NET Web API的大量或垃圾邮件请求,c#,asp.net,security,C#,Asp.net,Security,我正在ASP.NET中开发一个web API,它可以进行一些图像处理。本质上,用户应用程序将使用一些参数(即图像、质量、要绘制的文本、大小等)发出get请求 我担心的是,我不知道这些请求会以多快的速度到达。如果我对get请求进行垃圾刷新的时间足够长,我会看到内存开始缓慢增加,直到达到1G,然后最终抛出OutOfMemory异常。奇怪的是,有时在进入OOM之前,我会得到一个ArgumentException(即使我使用的是一个有效的请求,但它在其他情况下也可以工作) 我的问题很广泛,具体如下: 1

我正在ASP.NET中开发一个web API,它可以进行一些图像处理。本质上,用户应用程序将使用一些参数(即图像、质量、要绘制的文本、大小等)发出get请求

我担心的是,我不知道这些请求会以多快的速度到达。如果我对get请求进行垃圾刷新的时间足够长,我会看到内存开始缓慢增加,直到达到1G,然后最终抛出OutOfMemory异常。奇怪的是,有时在进入OOM之前,我会得到一个ArgumentException(即使我使用的是一个有效的请求,但它在其他情况下也可以工作)

我的问题很广泛,具体如下:

1) 有没有一个好的工具来测试这种大规模请求?我希望能够垃圾邮件我的服务器,这样我就可以一致地分析和解决出现的任何问题。我没有找到任何东西,只是在浏览器上手动单击/按enter键

2) 您是否建议使用一种工具来分析我的程序中哪些特定进程导致了内存问题?如果VS中的诊断工具足够好,您能提供一些关于我应该寻找什么的指导吗?即调查调用堆栈、内存分析等

3) 如果能回答这个问题,也许上述问题都没有必要:这些请求能被阻止吗?也许我的API可以确保它们只能以可以处理的速度处理(以牺牲用户图像加载时间为代价)。。我知道仅仅捕获异常是不够的,那么ASP.NET是否为这种大规模请求预防提供了一些功能


感谢您花时间阅读,我们非常感谢您的回答。

您正在使用IIS吗?如果是,您可以安装动态ip限制模块:目前它部署在Azure服务器上,但我在部署之前在本地Azure emulator上做了大量测试,因此您还需要实现以下功能:,api端点的
代客泊车钥匙模式