服务器概况:
发生问题的服务器是腾讯云服务器,操作系统为Server2012R2,安装金蝶云星空7.5.1普通版,SQL2012SP2数据库。
问题:
最近服务器出现了CPU和内存莫名其妙的被占用到100%的情况(持续被占用100%),期间并没有人登录系统。在重启后,打开网页(http://*.*.*.*/k3cloud/html5/index.aspx)提示“服务器*.*.*.*要求你输入用户名和密码。 该服务器还报告:”Digest”。”
问题背景:
而在重启之前是可以正常访问的。该服务器只安装了云星空7.5.1,SQL2012数据库,Edge浏览器,百度云。
之前这个问题在我的本地虚拟机Server2012R2和Server2016中都出现过,也是安装后能访问,使用一段时间之后重启出现问题,因为是本地测试环境并没有引起我的重视,直接恢复快照恢复了,这次在客户生产环境中遇到了这个问题,必须想想解决办法了。
检查步骤:
IIS身份验证:
起初我以为是服务器的身份验证出现了问题,虽然没人会去修改它但我还是做了检查。
打开Internet Information Services (IIS)管理器,查看网站IIS身份验证,只有匿名身份验证是在启用状态,没问题。
之后我开始研究起了这个登录框,输入服务器的管理账号和密码不对,输入数据库的SA账号密码不对,输入星空的账号密码不对。无奈放弃。
Ieee 802.1x 身份验证
之后猜想可能是Ieee 802.1x 身份验证的问题,右击任务栏的“网络”图标,打开“打开网络和共享中心”;点击“更改适配器设置”;选择上网的网络连接,比如“以太网”和“无线连接”;右键点击“以太网”选择属性;单击“身份验证”标签,取消勾选“启用Ieee 802.1x 身份验证”选项,并确定保存。还是没解决问题。(顺带提一下,如果以太网属性里没有这个身份验证,请开始-运行-services.msc,确保Wired AutoConfig服务 启用&自动)
端口被占用:
后来猜想端口可能是被FTP占用了,但FTP一直应该是21端口啊。IIS管理器查看了一下。Default FTP Site,绑定端口21。正常。
这时发现Default Web Site网站并没有启动!
手动点击启动之后提示端口被占用无法启动,这四个网站只有Default Web Site是占用80端口的,其他网站没有使用。那可能是别的进程或服务占用了80端口。
window+R组合键,输入CMD,调出命令窗口。输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口80,首先找到它。
查看被占用端口对应的PID,输入命令:netstat -aon|findstr "80",回车,记下最后一位数字,即PID,这里是4。
打开任务管理器查看PID4是System,是系统进程,CMD强制结束命令也不能使用了。
在命令行窗口输入regedit,调出系统注册表。
单击注册表下的HKEY_LOCAL_MACHINE,在点开SYSTEM。
再点开SYSTEM下的CurrentControlSet,在点开Services
在 Services下单击HTTP,然后在注册表右边双击打开Start属性项。
将Start的属性值改成0,单击确定,设置完成。
重启系统,还是老样子。
之后生成了一个HTTP服务状态快照(服务器会话视图)
服务器会话 ID: FF00000120000001
版本: 2.0
状态: Active
属性:
最大带宽: 4294967295
超时:
实体正文超时(秒): 120
耗尽实体正文超时(秒): 120
请求队列超时(秒): 120
空闲连接超时(秒): 120
标头等待超时(秒): 120
最小发送速率(字节/秒): 150
URL 组:
URL 组 ID: FE00000140000001
状态: Active
请求队列名称: SyncSharePool{9A7DF217-6214-41E3-8CDF-37CA1337DC84}
属性:
最大带宽: 已继承
最大连接数: 已继承
超时:
继承的超时值
日志记录信息:
日志目录: C:\inetpub\logs\LogFiles\W3SVC1
日志格式: 0
身份验证配置:
启用的身份验证方案:
NTLM
协商
身份验证设置:
接收上下文句柄
通道绑定强化: 旧版
已注册的 URL 数目: 2
已注册的 URL 数目:
HTTPS://*:443/
找到了,是SyncSharePool在占用80和443端口,打开计算机管理-服务,找到SyncShareSvc服务,停止该服务,再次启动服务器,成功启动,不报错了,正常访问。(该服务描述为:Windows Sync Share,Windows 同步共享服务允许客户端设备从文件服务器同步文件。)
完美解决!