爱莎居

.Net

导航

HttpApplication机制

本文原标题:多核处理器会不会对网站速度有好处?

之前对于HttpApplication的理解基于一些资料上说的,ASP.NET把网站下面的虚拟目录当作单独的 WebApplication 来对待,当收到 HTTP 请求时,会把该请求分配给相应的HttpApplication对象进行处理。这些资料给我的感觉是一个 WebApplication 下面会有多个 HttpApplication 对象。但是实际上并不是这样的。
首先,应用程序池,WebSite, WebApplication, Virtual Directory 这些概念必需搞清楚。

在IIS中可以建立多个应用程序池,然后可以为 WebSite 以及 Virtual Directory 指定相应的应用程序池。一旦为一个 WebSite 或虚拟目录指定了应用程序池,这个 WebSite 或虚拟目录就具备了容纳 WebApplication 的能力。如果不指定应用程序池,该 WebSite 或虚拟目录就只能处理静态的文件,如HTM,JPG,BMP文件等。
IIS将为每个应用程序池生成一个单独的W3WP进程来运行指定为该应用程序池中的 WebApplication,也就是说多个 WebApplication 是可以在一个W3WP进程中运行的。可以在命令行中运行 IISAPP 来查看每个应用程序池对应的W3WP进程是哪个。在一个W3WP进程中会为每个 WebApplication 生成一个的 HttpApplication 对象,该对象在一个 WebApplication 被第一次请求时生成,在对应的 WebApplication Unload 时结束。对同一个 WebApplication 的所有请求都将由同一个指定的 HttpApplication 对象进行处理,并且一个 HttpApplication 对象同时只处理一个对相应 WebApplication 的请求。


--------------------------------------------------------------------
今天无意中在MSDN这一页(http://msdn2.microsoft.com/en-us/library/ms178473(VS.90).aspx)中看到了下面的话。
An instance of HttpApplication processes only one request at a time.

这是不是说明,如果你有一台服务器只用来为你的一个ASP.NET网站服务。那么是不是可以确定这台服务器使用多核处理器并不会比使用单核处理器带来较明显地提高。

posted on 2007-12-07 16:21  焰凌  阅读(947)  评论(2编辑  收藏  举报