IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

前言:请看完文章,历经曲折,中途的解决方法都不行

1、本来IIS是可以启动的,但是后来发现80端口被占用。

运行‘netstat -ano’发现被pid=4的进程占用。

打开任务管理器,发现pid=4的进程,其实是system进程,其对应的进程描述是NT kernel & system

网上描述运行net stop http(杀掉系统自带的http服务,确实可以关掉很多需要80端口的程序,但是这是瞎操作,后面我的IIS都启动不了)

2、通过网上的方法如下运行后解决80端口占用问题

    0)打开regedit

    1)找到HKEY_LOCAL_MACHINE目录

    2)找到System

    3)找到CurrentControlSet

    4)找到Services

    5)找到http

    6)右边栏:找到start

    7)打开,将3改为4,确定

    8、重启电脑,就解除了NT Kernel & System占用80端口,如果要使用vs能够正常运行,则反过来把4改成3即可。

3、但是问题来了,IIS打不开了。提示“无法启动计算机'.'上的服务w3svc”,在此之前我手动更改过IIS的服务端口改成过8888。

IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

问题解决方式:

1、在cmd里面输入services.msc,手动打开IIS,发现缺少依赖的组件,打开属性,查看依赖,依次去打开RPC..,发现都是打开的,只有HTTP service没有。想到可能是之前修改NT Kernel & System占用端口时将3改成了4造成的。

IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

2、去将4改回3,重启电脑发现IIS可以用了。但是80端口又被NT kernel & system占用,查看任务管理器看pid=4的属性发现是ntoskrnl.exe在占用80端口。百度一大波东西,要改什么计划任务(控制面板-管理工具-任务计划程序-任务计划程序(本地)-详细信息下拉,如下图关闭空闲时段内存自检的任务,这些方法都是不合适的。)

IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

3、百度查看ntoskrnl.exe可能是sqlServer中的某个服务。

IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

4、于是打开sql server configuration manager(配置管理器),将下图SQL Server Reporting Services关掉,再cmd中查看netstat -ano发现80不见了。于是启动apache发现可以了。启动iis也可以了(IIS改成了8888端口)

IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

IIS无法启动计算机'.'上的服务w3svc与NT kernel & system占用80端口问题--之详细描述

5、如果读者不是sqlServer问题,同样可以顺着这个思路想想最近安装了什么东西,把它关掉,再看80端口是否变化。在解决这种系统环境问题,网上又没有答案的时候,还可以查看系统日志,看日志报什么错(win+R中输入eventvwr )。