iis-7 – ASP.NET请求队列优先级

我在IIS 7和.NET 4.0上.我的理解是IIS接受请求并将它们传递给ASP.NET工作线程.如果所有线程都在使用中,则请求进入队列并在线程可用时进行处理.如果队列超过一定大小,则所有新请求都将获得503,直到队列中再次有空间为止.

有没有办法确定服务排队请求的顺序的优先顺序?例如,我有消费者流量和基础设施流量来到同一台服务器.如果没有可用的线程,我希望首先提供消费者请求,即使它们是在基础设施请求之后到达的.基本上我想用优先级队列替换请求队列.这可能与IIS?

解决方法

可能涉及许多队列;我认为你的描述不完整.

IIS允许您指定站点的特定部分在不同的应用程序池中运行,每个应用程序池都在单独的工作进程中运行.

每个应用程序池都有一个内核模式请求队列(认为1000个请求),用于确保在回收的W3WP(工作进程)的情况下请求不会丢失,但这也成为未完成请求的实际最大限制在某一特定时刻.

如果此队列填满,您将获得503.

应用程序框架(如.Net或经典ASP)也可以实现自己的用户模式请求队列,该队列在工作进程中运行.我不相信可以在框架内优先考虑不同的请求(除非有一个我不熟悉的ASP.Net功能).

如果每个进程的线程池中都有有限数量的线程,则将应用程序分隔为(例如)静态内容和活动内容应用程序池可以帮助将基本工作从繁忙的应用程序进程的线程池中移除. (同样,添加更多线程(可以说)是一种合理的方法).

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...