mssql服务监听80端口:原因及解决方案

1. 前言

在使用MSSQL服务的过程中,有时候会发现这个服务正在监听80端口,这时候需要对其进行解决。本文将讲解MSSQL服务监听80端口的原因以及相应的解决方案。

2. 原因

2.1 MSSQL默认使用TCP/IP协议

MSSQL使用TCP/IP协议进行通信,而TCP/IP协议默认使用1433端口。但是,在MSSQL配置不当的情况下,它会使用无法访问或会被其他应用程序使用的端口,比如80端口。

SELECT DISTINCT local_tcp_port 

FROM sys.dm_exec_connections

WHERE local_tcp_port IS NOT NULL

ORDER BY 1;

运行以上SQL语句可以查看MSSQL使用的端口,如果发现是80端口,则说明MSSQL服务在监听80端口。

2.2 IIS与MSSQL共存

IIS是一款微软的网络服务软件,如果在同一台机器上安装了IIS和MSSQL,那么MSSQL就可能会监听80端口。因为IIS默认使用80端口,如果MSSQL与IIS共存,则MSSQL可能会使用IIS的端口。

2.3 MSSQL服务不必要地绑定了80端口

有时候,MSSQL服务可能会不必要地绑定了80端口,这种情况比较少见。

3. 解决方案

3.1 修改MSSQL的端口

如果MSSQL服务在监听80端口,可以通过修改其默认端口的方式解决。

首先需要打开SQL Server Configuration Manager,然后依次展开以下目录:SQL Server Network Configuration -> Protocols for MSSQLSERVER(MSSQLSERVER指的是SQL Server的实例名称)。

在这个目录中,可以找到TCP/IP协议。将其属性中的TCP动态端口改为任意非占用端口,比如1433端口。保存后,重新启动MSSQL服务,就可以重新分配端口了。

USE master

GO

EXEC sp_configure 'show advanced options', '1';

RECONFIGURE;

GO

EXEC sp_configure 'listen all', '0';

RECONFIGURE;

GO

EXEC sp_configure 'tcp port', 1433;

GO

3.2 检查IIS的端口配置

如果MSSQL服务与IIS共存,那么可以通过检查IIS的端口配置来解决MSSQL服务监听80端口的问题。

首先需要打开IIS管理器,展开Default Web Site,右键点击它,选择Edit Bindings。在这个页面中,将所有绑定的端口都修改为其他端口,比如8000端口。保存后,重新启动IIS服务,就可以重新分配端口了。

3.3 禁用HTTP.SYS

HTTP.SYS是Windows操作系统内置的HTTP处理程序,它可以为多个进程提供HTTP请求处理能力,包括IIS和MSSQL服务。如果MSSQL服务与IIS共存,那么MSSQL也可能会使用HTTP.SYS服务来绑定80端口。

为了禁用HTTP.SYS服务,需要打开注册表编辑器,找到以下项:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters\UrlAclInfo

在这个目录中,找到名为"Delete:..."的项,并将其全部删除。保存后,重新启动MSSQL服务和IIS服务,就可以重新分配端口了。

4. 总结

对于MSSQL服务监听80端口的问题,可以通过修改MSSQL的端口、检查IIS的端口配置或者禁用HTTP.SYS来解决。这个问题可能会在MSSQL与其他应用程序共存或者配置不当的情况下出现,需要注意检查和设置。

数据库标签