IIS、Asp.NET 管道和并发性

2024-02-24

我想知道 Web 应用程序中的并发实际上是如何工作的。我读过几篇文章,据我了解 HttpApplication 的多个实例将同时工作。现在,我创建了一个简单的 Web 应用程序来测试并发性,并将以下内容放入 global.asax:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    Response.Write("Request started: " + DateTime.Now);
    System.Threading.Thread.Sleep(10000);
    Response.Write("<br />");
    Response.Write("Request ended: " + DateTime.Now);
    Response.End();
}

我预计,如果我几乎同时在多个浏览器选项卡中浏览到 Web 应用程序根目录,它们将同时启动和停止。然而,他们似乎并不这么认为。第二个选项卡的开始时间与第一个选项卡的结束时间相同。然后,我通过在 httpmodule 或 default.aspx page_load 中使用相同的代码进行测试,并得到相同的结果。

这里发生了什么?为什么请求不被并行处理?

Edit:我的理解主要集中在两篇文章上:

http://msdn.microsoft.com/en-us/magazine/cc188942.aspx http://msdn.microsoft.com/en-us/magazine/cc188942.aspx说“如果针对同一应用程序的多个请求同时到达,则将使用多个 HttpApplication 对象。”

and 有一个 aspx 页面的示例,基本上执行我测试的操作,并带有注释“模拟慢速请求,以便我们可以并排看到多个请求”。 Thread.Sleep 调用旁边

我可能完全误解了某些事情......但是什么?


每个到达的请求都被路由到一个单独的 HttpApplication 对象。 HttpApplication 对象要么是从头开始创建的,要么是从池中分配的。创建的 HttpApplication 对象的最大数量受到可用线程的最大数量的限制。在 ASP.NET 1.x 中,我认为默认值是 20 左右。在 ASP.NET 2.0 下,此限制是动态管理的。

在应用程序开始崩溃之前,您需要创建足够的请求来耗尽 ASP.NET 线程池。

代码文章中的注释的意思并不是他的代码成为服务器的瓶颈,而是他使用它作为一种能够并排查看多个请求状态的方法,例如不同的线程 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS、Asp.NET 管道和并发性 的相关文章

  • 尝试将 Asp.Net Memebership 数据库部署到 SQL Azure

    我一直在尝试让 ASP net 会员服务提供商与托管在 SQL Azure 中的其余数据库配合使用 我已针对数据库运行适当的 SQL Azure 特定脚本来进行设置 这些脚本可从 Microsoft 获取 http archive msdn
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 匿名结构和空结构

    http play golang org p vhaKi5uVmm http play golang org p vhaKi5uVmm package main import fmt var battle make chan string
  • 共享 Global.asax 和 Error.aspx 文件

    我的解决方案中有多个 ASP NET 网站以及一个常见的 C 代码项目 事情如下 Website1 Website2 网站 n Common 首先 我想使用 Global asax 文件来记录所有未处理的异常 我可以为每个网站拥有一个 Gl
  • 使用 HtmlAgilityPack 解析 dl

    这是我尝试使用 ASP Net C 中的 Html Agility Pack 解析的示例 HTML div class content div dl dt b a href 1 html title 1 1 a b dt dd First
  • ASP.NET 解决方案的本机程序集绑定失败

    NOTE 这个问题的主要目的是理解 解释CLR 的程序集绑定行为 一旦确定原因 解决方案就应该显而易见 请注意 我知道我的设置不是最佳的 nativedll 未签名和版本控制等 但我只是想调查 CLR 的绑定行为 我正在尝试在我的 asp
  • ASP.NET AJAX 4.0 客户端数据绑定

    我在 MSDN 杂志上读到了一些有关 ASP NET AJAX 4 0 新功能的文章 主要是客户端数据绑定 我觉得 MSDN 杂志有时包含很多 营销 所以我对真正开发人员的意见很感兴趣 值得吗 您打算使用它吗 Edit 如果有人感兴趣的话
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 根据所选单选按钮启用文本框

    我有一个单选按钮列表 其中列出了不同的业务类别 最后一个选项是Other类别 当用户选择Other类别 我希望能够启用一个文本框 用户可以输入更多信息来解释Other选择 目前 我正在尝试 If rblCategory SelectedIn
  • 打印到 stdout 会导致阻塞的 goroutine 运行吗?

    作为一个愚蠢的基本线程练习 我一直在尝试实现理发师睡觉的问题 http en wikipedia org wiki Sleeping barber problem在戈兰 对于通道来说 这应该很容易 但我遇到了一个 heisenbug 也就是
  • If else 在 Web 网格列中

    如何在 webgrid 列中添加条件 if else grid GetHtml tableStyle table table bordered columns grid Columns grid Column RealName Name g
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • DateTime.Parse("2012-09-30T23:00:00.0000000Z") 始终转换为 DateTimeKind.Local

    我想解析一个表示 UTC 格式的日期时间的字符串 我的字符串表示形式包括 Zulu 时间规范 该规范应指示该字符串表示 UTC 时间 var myDate DateTime Parse 2012 09 30T23 00 00 0000000
  • 如何完全禁用签名程序集?

    我有一个包含多个项目的 VS NET 2010 解决方案 我刚刚添加了一个新的库项目 the library assembly 启动项目是一个网站 当我运行该网站时 出现以下错误 无法加载文件或程序集 the library assembl
  • 如果使用 jQuery 隐藏了 ASP:Button,我无法单击该按钮?

    我发现 StackOverFlow 答案和其他资源说您可以通过 jQuery 单击隐藏的 ASP Button click or trigger click 然而 这些都不适合我 除非按钮是 Visible true 这是按钮
  • 如何使用 Blazor 在 ASP.NET CORE 中更新数据库后刷新网页

    我正在制作一个小型房间预订网络应用程序 我希望在给定的时间间隔内刷新网页 即给定的一分钟或对数据库进行更改时 我发现StateHasChanged 但我真的不知道如何实现它 这里是新手一克诺比 我尝试将其放在将约会添加到日程表的函数中 va
  • 为 html5 输入类型渲染 asp.TextBox =“date”

    不知道以前有没有问过 也没找到 是否可以控制由 asp TextBox 呈现的输入文本的类型 我想把它改成
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex

随机推荐