ASP.NET请求队列的优先级

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

有没有一种方法来优先处理排队请求的顺序? 例如,我有消费者stream量和基础设施stream量来到同一台服务器。 如果没有可用的线程,我希望消费者请求首先被服务,即使他们已经到达基础设施请求之后。 基本上我想用优先级队列replace请求队列。 这可能与IIS?

有一堆可能涉及的队列, 我认为你的描述是不完整的。

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

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

如果这个队列填满,你得到一个503。

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

如果每个进程线程池中的线程数量有限,则将应用程序分离(例如)静态内容和活动内容应用程序池可帮助保持繁忙应用程序进程的线程池的基本工作。 (同样,增加更多的线程(可以说)是一个合理的方法)。

我不这么认为,但是你可以有两个站点,一个用于消费者stream量,一个用于基础设施stream量,然后他们各自拥有自己的队列。