近期出现了一个奇怪的问题,不确定是哪方面的原因
wcf 无法连接本地 redis ,后续重启服务器、重启 redis 、重启 wcf 服务莫名其妙可以连接 redis 了,这里应该存在某个网络问题,顺便检查了所有服务的启用情况,都在启用中。
wcf 可以连接 redis 之后,发现无法连接 sqlserver ,遂排查端口占用,redis 无端口占用,发现 wcf 端口被 [ NT Kernel & System ] 这个 system 服务占用,于是修改 wcf 端口,然而还是没有解决这个问题。
遂排查 sqlserver ,这时候吊诡的情况终于出现了,使用 ssms 进行访问
补充:之前出现过同样的问题,初步认定为是双网卡导致的,于是禁用了一张网卡,当时这个问题就被解决,现在这个问题再出现,可能也与双网卡有关,但是不知道关系在哪
1
billccn 86 天前
防火墙规则查一下?
还有 SQLServer 是可以设置哪个 IP 监听,没有监听的 IP 用来访问就无效。 还有可能是有人乱搞路由表 |
2
yuhuai 86 天前
去 SQL Server Configuration Manager 网络配置下的 TCP/IP ,IP3,4,5 这几个配置是否 Enabled 和 Active 以及是否正确配置端口号,如果你找不到 Configuration Manager,看这个 https://learn.microsoft.com/zh-cn/sql/relational-databases/sql-server-configuration-manager?view=sql-server-ver16
|
3
zhangeric 86 天前
这个应该是再配置管理器对应得 ip 地址没有设置吧.你检查一下 ipall 这个设置了么?
|
4
datocp 86 天前
大家对 sqlserver 这个防火墙有没有深入研究,或者说 sql 自身是不是也有什么重启规则
公司的 ERP 一直有问题,程序员说是网络问题。。。 1 。今年的服务器一开始没有上 windows 自带防火墙 2 。由于一直咬定网络有问题,这次用了移动的 5G 网络来测试,一开始的 7 天一直没问题,似乎一直到我启用了 windows 防火墙,5G cpe 开始反复的出问题。。。就是同事反应一天掉个 3 次线 3 。后来通过狂 ping 服务器,确实又出现了当天没掉线的情况 @echo off echo 检查网络是否联通来,长时间没反应请点右上角 关闭 :check ping -n 1 192.168.5.34|find "TTL" IF ERRORLEVEL 1 goto startConnect IF ERRORLEVEL 0 goto check pause > nul ::这里进行命令的执行等操作,操作的满足条件就是网络通畅 :startConnect echo %time:~0,2%%time:~3,2%%time:~6,2% >>a.txt goto check pause>nul 4 。由于用的华为的 s5735 交换机,无线 192.168.5.x 跨 vlan 访问 192.168.1.x 的服务器,最后一直搞不清楚什么问题,不开防火墙也不行啊。 ::netsh advfirewall reset ::netsh advfirewall set allprofiles state off netsh advfirewall firewall del rule name="srv_icmp" netsh advfirewall firewall del rule name="srv_svchost" :::netsh advfirewall firewall del rule name="srv_mssqlt" :::netsh advfirewall firewall del rule name="srv_mssqlu" netsh advfirewall firewall del rule name="srv_sqlservr" ::netsh advfirewall firewall del rule name="srv_sqlbrowser" :: ::netsh advfirewall firewall add rule name="srv_icmp" protocol=icmpv4:8,any dir=in action=allow netsh advfirewall firewall add rule name="srv_icmp" protocol=icmpv4:any,any dir=in action=allow netsh advfirewall firewall add rule name="srv_svchost" dir=in action=allow protocol=TCP localport="20,21,49152-65535" :::netsh advfirewall firewall add rule name="srv_mssqlt" dir=in action=allow protocol=TCP localport="135,1433,1434,4022" :::netsh advfirewall firewall add rule name="srv_mssqlu" dir=in action=allow protocol=UDP localport="1434" netsh advfirewall firewall add rule name="srv_sqlservr" dir=in action=allow program= "D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes netsh advfirewall firewall add rule name="srv_sqlservr" dir=out action=allow program= "D:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" enable=yes ::netsh advfirewall firewall add rule name=srv_sqlbrowser" dir=in action=allow program= "C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe" enable=yes 5 。上次似乎 sqlserver 本身也有什么 reset 的机制 至今无法保持长连接,除了狂 ping 以后。反正客户端/软件端/网络/服务器端/防火墙,各种妖怪,至今排除不了这个问题。。。 |
5
cccvno1 86 天前
先命令行 ping 下看看 127.0.0.1 能不能被解析
能解析的话看看 sqlserver 配置管理器网络配置里有没有加 127.0.0.1 不能的话看看防火墙和 ipv6 这些配置 |
6
magicyao OP @billccn 这个 WCF 程序之前一点问题没有,是突然出现故障的,然后防火墙规则和 sqlserver 管理器里面的 ip 配置是检查过没有问题的,路由表是怎么看?
|
7
magicyao OP @yuhuai 这个 WCF 程序之前一点问题没有,是突然出现故障的,ip 配置刚刚也检查过没问题,通过刚刚的 4 、5 排查是可以推论出不存在这个问题,所以这才是吊诡的地方
|
9
zhangeric 86 天前
@magicyao #8 实在 sqlserver 配置管理器那里找到对应得网络配置里得 tcp/ip,双击打开,弹出得窗口里有个 ip 地址配置页,你可以添加对应得 ip 配置或者直接在 ipall 里配置 1433 端口.
|
10
magicyao OP @zhangeric 就是那里配置的,如果没配置好的话,服务器 b 无法通过 192.168.5.100 去访问的,而且在此之前所有的访问都是没问题的,各个地址都有试过
|
11
billccn 86 天前
@magicyao 命令行: netsh int ipv4 sh route
另外我在想你说 WCF 端口被占用,应该是它的 TCP 端口共享功能,就是多个程序可以监听同一个 TCP 端口,内核按照他们请求的内容分发到相应的程序。你可以用这个文档里面的 iplisten 和 urlacl 确定一下是不是正常: https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-http 我有点怀疑是你原先有个 WCF 服务锁死了但进程还在 |