加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:33:55 所属栏目:asp.Net 来源:网络整理
导读:我在IIS 7和.NET 4.0上.我的理解是IIS接受请求并将它们传递给ASP.NET工作线程.如果所有线程都在使用中,则请求进入队列并在线程可用时进行处理.如果队列超过一定大小,则所有新请求都将获得503,直到队列中再次有空间为止. 有没有办法确定服务排队请求的顺序的
我在IIS 7和.NET 4.0上.我的理解是IIS接受请求并将它们传递给ASP.NET工作线程.如果所有线程都在使用中,则请求进入队列并在线程可用时进行处理.如果队列超过一定大小,则所有新请求都将获得503,直到队列中再次有空间为止.

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

解决方法

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读