为了测试可以同时处理多少个异步请求,我创建了一个示例控制台应用程序,它向我的 Web 应用程序发送请求:
static void Main(string[] args)
{
const string url = "http://localhost/cip/AsyncPage.aspx";
ThreadStart del = delegate
{
Console.WriteLine("Starting request");
WebRequest request = WebRequest.Create(url);
request.GetResponse();
Console.WriteLine("Response ready");
};
for (int i = 0; i < 50; i++)
{
new Thread(del).Start();
}
Console.ReadLine();
}
AsyncPage.aspx 是一个 Async="true" 页面,包含一个从 1 到 10 循环的任务,每次迭代休眠 1 秒并写入响应虚拟数据(因此单个请求需要 10 秒)。
我注意到响应以 10 个批次返回。因此,10 秒后我收到 10 个响应,接下来的 10 秒后,我收到下 10 个响应。我用 Fiddler 做了类似的测试,结果是一样的 - 10 个请求似乎使用了所有 .... ASP.NET 资源?
我想知道哪个 ASP.NET 设置是造成这种行为的原因。