IIS与ASP.NET中的队列

一、IIS:应用程序池队列(Application pool queue,位于HTTP.SYS)

这是请求到达IIS后遇到的第一个队列,http.sys收到请求后会将请求放入对应的应用程序池队列,这样可以减少上下文的切换。需要注意的是应用程序池队列虽然是给w3wp进程用的,但它存在于http.sys的内存区(http.sys是一个运行于kernel-mode的设备驱动程序)。如果把http.sys比作一块网卡,那应用程序池队列相当于网卡的缓冲区。

1)设置方法:在IIS应用程池设置中设置Queue Length的值(缺省值是1000)。

2)监测方法:Windows性能监视器中监测Http Service Request Queues\ArriveRate。

3)出队方法:工作者进程(w3wp,user-mode)通过完成端口(completion port)从应用程序池队列中取出请求进行处理(user-mode与kernel-mode之间的通信),需要注意的是这里进行了IO操作。

二、ASP.NET:CLR线程池队列(CLR threadpool queue)

w3wp从应用程序池队列中取出请求后,接下来就是从CLR线程池中捞出一个CLR线程处理请求,如果池中空无一线,就会将请求放在CLR线程池队列中。

1)设置方法:在machine.config中设置processModel/requestQueueLimit(默认是1000),或者Aspnet.config中设置applicationPool。

<processModel enable="true"  requestQueueLimit="2000" >

2)监测方法:Windows性能监视器中监测ASP.NET v4.0.30319\Requests Queued。

时间: 2024-08-06 03:41:01

IIS与ASP.NET中的队列的相关文章

IIS与ASP.NET中的线程池

1. W3 Thread Pool(W3TP) 当处于内核模式的http.sys接收到来自用户的请求之后,会将请求放入队列中.那处于用户模式的w3wp进程如何从内核模式的队列中取出请求呢?I/O完成端口(IOCP,I/O Completion Port)闪亮登场.w3wp专门用了一个线程池干这个--W3TP,可以通过process explorer捕捉到它的身影. 2. .NET线程池 当请求被W3TP从http.sys的队列中取出来后,接下来的工作就会转交给ASP.NET,这时另一个线程池粉墨

在Win7中IIS配置Asp.Net虚拟目录的方法及错误总结!

在Win7中IIS配置Asp.Net虚拟目录的方法总结! 一.右键[网站],点击[添加虚拟目录]或[虚拟应用程序],笔者建议最好建立虚拟应用程序,因为这就跟一个网站差不多,不用考虑路径问题. 二.直接输入相应内容选择路径就行了,如果要指定[应用程序池],需要先建立一个新的[应用程序池],配置与网站差不多了. 三.运行后,如果出现以下错误:HTTP 错误 500.19 一般是web.config配置问题,很简单,找到以下内容 <system.webServer> <defaultDocum

Win7旗舰版中的IIS配置asp.net的运行环境

Win7旗舰版中的IIS配置asp.net的运行环境 以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫“灵光一闪”,废话不多说了,这个成功是有图有视频有真相地哈! 这篇博文发表都三个月了,我自认为算是很详细了,可是还是很多人没有配置出来(天天有人在群里问我怎么配置),所以今天特意录成视频供大家参考.特意申明:这是配置asp.net运行坏境,不是asp,asp和asp.net是有区别的.asp.net如果还是配置不出可以问,asp就算了,我不懂asp哦!无法帮你解决

Win7旗舰版中的IIS配置asp.net 完美通过版,附代码 以及出现的 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\8d57d

先解决问题:“c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\8d57d 图: 其他的解决方案均没有成功如: 1 设置c:windows\temp 目录访问权限 temp--> 属性-->安全-- > 添加network service -->并赋予其权限为 读 和 写--> 确定 (注意:操作系统为windows server2003 framework 版本在 1.1

asp.net中为什么修改了配置文件后我们不需要重启IIS

本文转载:http://blog.itpub.net/12639172/viewspace-659819/ 大家知道,asp.net中,如果我们修改了配置文件只要把它保存之后,就会立刻反应到程序中, 并不需要我们重启IIS.甚至我们可以在不停止IIS的情况下,直接替换应用程序下的文件,包括我们 编译好的dll文件等,你需要做的只是替换你变换了的文件而已.那么.net是怎么做到的呢? 这要归功于.net的应用程序域机制,应用程序域是比进程小的程序元单位,也就是说一个 进程中可以包含多个应用程序域.

完整的http请求在IIS和asp.net framework中的处理流程

完整的http请求在IIS和asp.net framework中的处理流程: HttpRequest-->inetinfo.exe-->IIS的.net扩展程序ASPNET_ISAPI.DLL-->Http Pipeline-->ASP.NET工作者进程ASPNET_WP.EXE(IIS5.0中)/w3wp.exe(IIS6.0以上版本)进行以下处理-->ISAPIRuntime-->HttpRuntime-->HttpApplication Factory--&

充分发挥异步在 ASP.NET 中的强大优势

作者:Brij Bhushan Mishra 最近几年,异步编程受到极大关注,主要是出于两个关键原因:首先,它有助于提供更好的用户体验,因为不会阻塞 UI 线程,避免了处理结束前出现 UI 界面挂起.其次,它有助于大幅扩展系统,而且无需添加额外硬件. 但是,编写合适的异步代码来管理线程本身是项乏味的工作.虽然如此,其巨大好处让许多新旧技术纷纷开始使用异步编程.微软自发布了 .NET 4.0以后也对其投入颇多,随后在 .NET 4.5中引入了 async 和 await 关键字,使异步编程变得前所

ASP.NET中Session的sessionState 4种mode模式

1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. Off模式 <sessionState mode="Off"></sessionState> 关闭模式,即不需要使用Session. 单个页面关闭Session: <%@ Page EnableSessionState="false" %

谈谈IIS与ASP.NET管道

作为一个Asp.Net平台开发者,非常有必要了解IIS和Asp.Net是如何结合,执行我们的托管代码,以及Asp.Net管道事件的. 本节目录 IIS 5.X IIS 6 IIS 7+ 集成模式 Asp.Net管道 HttpModule HttpHandle IIS 5.x InetInfo.exe与W3SVC服务 IIS 5.x运行在进程InetInfo.exe中,在该进程中一个最重要的服务就是名为World Wide Web Publishing Service(简称W3SVC)的Windo