SP2中的操作系统核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。如果用户不慎删除了该驱动文件,不用担心,该驱动会在下次系统启动时重建。是一个删不掉的系统核心组件!实用程序结束该驱动,该驱动也会马上重新创建(只有粉碎文件才不能马上重建,但粉碎后,下次启动会重建)。
新的HTTP
API里最核心的变化都封装在Http.sys这个kernel
mode
driver里了。在此之前,基于HTTP协议的程序都是在User
mode下运行的,而且必须自己处理诸如软件中断、context
switch、线程调度等等问题,并且往往无法自由接触系统资源。过去,HTTP服务器,如IIS,
Apache等都是利用Winsock
API来创建一个User
mode下的network
listener。Network
listener通常独自(i.e.:
per
application
or
per
thread
basis)占用一个IP端口。通俗点说,就是在同一时间只有一个应用程序可以监听一个端口,这在有些时候是一个不太令人舒服的限制。
新的Http.sys带来的好处大致有如下一些:
1.
缓存
-
静态的内容现在被缓存于内核模式下,这使服务响应速度更快
2.
记录
(Log)-IIS的log功能更快且标准化了
3.
带宽控制
-
greater
scalability
control
and
throttling
4.
可靠性
-
所有的服务请求会在Http.sys里暂存入队列,而不是由服务程序本身来处理,这样,即使服务程序重启,尚未被处理的请求也不会丢失了
5.
IP端口重用
-
现在,只要是通过Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同时允许多个程序同时监听了。
所以,不必对它进行阻止,应该让它运行。
如何解决80端口被占用?1.首先使用netstat命令查看80端口被谁占用,操作命令如下
netstat
-ano
|more
上图显示80端口被pid4
system占用
2.其次分析端口被占用原因,该进程是Http.sys。它是http
API的驱动组件,Http栈服务器。如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。netsh
http
show
servicestate
命令能找出是哪个应用程序在使用Http.sys
3.最后解决问题。可以禁用http.sys
1.
net
stop
http
2.
Sc
config
http
start=
disabled
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)