http.sys & Indigo

如何在某个程序中宿主一个http webserver,能够接收客户端(或者用“服务端”这个词)传入的http请求包,并将结果返回?这是一个非常常见的需求,比如,在一个面向服务的架构中,一个Service端可能就需要能够以http channel接收其他Service端发送来的Message。

在过去,我们(几乎)只能依靠IIS,但现在我们有了http.sys。http.sys是一个位于Win2003和WinXP SP2中的操作系统核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。

.Net Framework 2.0中充分利用了http.sys。比如通过HttpListener这个类,我们可以在自己的应用程序中轻松建立一个http server,接收标准的http请求信息。

在一个SOA的系统中,我们就可以更加方便的建立http channel,来传送信息了。Indigo就使用了http.sys,来脱离IIS实现self-host。在Don Box以前的blog上,就曾经演示了Indigo如何self-host的一些示范代码。

最新在自己的电脑上研究Indigo,希望能多些这个方面的文章和大家分享。

http.sys的正式Platform SDK文档:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/http/http/http_api_start_page.asp
一篇不错的介绍性Blog文章:http://dotnetjunkies.com/WebLog/softwaremaker/archive/2004/08/08/21447.aspx
在Don Box以前的Blog的这个页面上有不少相关的文章:http://www.gotdotnet.com/team/dbox/default.aspx?month=2004-03

原文地址:https://www.cnblogs.com/kaneboy/p/2436818.html