最近电脑时不时就发生了80端口被占用的情况,今天在开启Apache服务器的时候又发现,Apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令net start Apache2.4,结果依然是无法打开。手动启动服务报错“Windows不能再本地计算机启动Apache,有关更多信息,查阅系统时间日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。”如下图所示:
看到这种情况,我有手动cd到Apache的httpd.exe的目录,执行了一下httpd,这下原因找到了,如下图所示:
(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : AH00072: make_sock: could not bind to address 127.0.0.1:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs
从图中可以看到错误的原因是套接字绑定错误,这下可以确定是Apache的80端口被占用了。于是就使用命令 netstat -ano 来查看一下到底是哪个程序占用了80端口,如图所示端口查找的结果:
看到80端口被PID为4的System进程占用,呵呵,我想说一句我擦嘞什么鬼+_+。仔细想了想,一般的程序不会占用80,遂使用命令 netsh http show servicestate 查看一下当前的http服务状态,发现果然有问题,如下图所示:
图中可以看到,80端口被一个DefaultAppPool的东西占用了,如果用过IIS的童鞋,这时候肯定一定想到了原因,这里我们依然要接着往下找原因,图中可以看出控制器进程ID为4640,那么就 就继续查看一下4640进程是什么鬼,进入任务管理器,找到PID4640的进程,右键转到服务,可以看到当前的进程所在的服务,如图所示:
看到图中的服务,这里原因也就找到了,IIS的World Wid Web Publishing Service 万维网服务的问题。
解决方案:
控制面板–>程序–>启用或者关闭Windows功能–>找到Internet Information Service,将其关闭即可
如果你查到的占用是 SQL Server Reporting Services,说明是安装了 SQL Server,停止掉这个服务并设置其为手动启动即可。
但如果你查到的是80端口被pid的为0的进程给占用了,这个pid为0的进程是系统闲置进程即system idle process,这个进程可是干不掉的,怎么办呢?
解决方案:
打开设备管理器,点击菜单栏中的查看-->显示隐藏设备,这时候你能看到非即插即用驱动程序,展开,找到HTTP,双击切换到驱动程序选项卡,将类型设为已禁用,确定,重启系统。(注:理论上,你直接点停止也是可以的,但是我点击之后系统总是卡死。禁用还是要设置的,否则系统重启之后80又被占用了),HTTP驱动通常是打印机之类的设备连接造成的端口占用
您可能感兴趣的文章
- 速度革命!零成本让老旧硬盘"秒变"SSD的终极神器!电脑提速利器!
- 独家汉化 WIN 下 MAC磁盘读取工具 MacDrive Pro 11.1.1.12 汉化中文特别版 支持黑白苹果
- Microsoft PowerToys v0.70.1 微软Windows工具合集 系统增强工具
- USB2.0提速补丁Windows7 USB2.0提速补丁 Windows6.1-KB2581464 x32 x64位 超越30MB/S上限
- LastActivityView (查看电脑使用记录软件) v1.35 汉化中文版
- 独家汉化 傲梅分区助手技术员版 v10.7.0国际版 (国内版技术员版缺少重要功能,此版包括国内版企业、专业及技术员版功能)
- Textify v1.10.3 心语家园加强版 Windows文字复制神器 窗口文本提取工具 复制原本不能复制的文本
- WinXP系统精简利器 nLite v1.4.9.3 (内附使用教程)
文章标签:
版权声明:本文为原创文章,版权归 心语家园 所有,欢迎分享本文,转载请保留出处!








评论已关闭!