别了,IIS

本文转载自 :http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/ServiceStation.mspx?mfr=true

 

Http.sys 是一个新的低级 HTTP 协议栈,可在 Windows Server 2003 和 Windows XP SP2 中使用。Http.sys 是一个内核模式组件,它为计算机中的所有应用程序提供它的 HTTP 服务。这意味着 HTTP 支持深深依赖于 OS。甚至 IIS 6.0 也进行了重新架构,以便可以使用 http.sys(请参见图 3)。

fig03

 

图 3 Http.sys 体系结构

在 6.0 版之前,IIS 依靠 TCP/IP 内核和 Windows Sockets API (Winsock) 接收 HTTP 请求。由于 Winsock 是一个用户模式组件,因此每个接收操作都需要在内核模式和用户模式之间进行切换。现在 Http.sys 可以直接在内核中缓存响应。当处理缓存的响应时,将 HTTP 栈放在内核中可以使得移除代价昂贵的上下文切换成为可能,从而提高效率和整体吞吐量。

当 http.sys 接收到请求时,它可以直接将该请求转发到正确的辅助进程中。另外,如果辅助进程无法接受该请求,http.sys 会存储该请求,直到辅助进程启动并可以接受它为止。这意味着辅助进程失败不会中断服务。当 IIS 6.0 启动时,WWW 服务会与 http.sys 进行通讯,并为配置的每个 IIS 应用程序注册路由信息。无论您何时在 IIS 中创建应用程序或移除应用程序时,WWW 服务都会与 http.sys 进行通讯以更新它的路由信息。

正如您在图 3 中所看到的,http.sys 为 IIS 6.0 Web 体系结构奠定了基础,但它没有以任何方式与 IIS 产生联系。运行在计算机中的任何应用程序都可以利用 http.sys 来接收 HTTP 请求。与 WWW 服务相似,您可以用 http.sys 注册应用程序,并开始侦听传入的 HTTP 请求。.NET Framework 2.0 引入了一套托管类,使得这些托管类可以很容易地实现该操作。

HttpListener:实现您自己的 Web 服务器

System.Net 包含几个用来与 http.sys 进行交互的新类。HttpListener 是这些类中的关键一个。可以使用它来创建简单的 Web 服务器(或侦听器),用于响应传入的 HTTP 请求。这个侦听器在 HttpListener 对象的生存期内都保持活动状态,不过您可以通过命令通知它开始和停止侦听。

 

 

还有一篇更早的文章

http://www.microsoft.com/belux/msdn/nl/community/columns/desmet/hostaspnet1.mspx

Hosting the ASP.NET runtime in your own application

posted @ 2009-05-29 22:12  陈希章  阅读(636)  评论(0编辑  收藏  举报