今天下午刚从客户坐车回来晚上洗完澡闷热的天气让人睡不着觉就和大家分享一下windows server socket端口的默认的数量修改方式 导致问题从项目上线之后客户说一个月就会宕机一次系统用户无法正常登陆后台报异常无法连接而整个集团的并发数并没有到一个很大的数量级每次宕机单纯的重启web服务器以及数据库服务无法到达解决问题的办法必须要重启电脑因此思路就转向了承载web服务器本身的服务器每次都是按照socket来进行数据的读取而每Socketclose()是不马上释放连接的而是设置为time_wait状态这个时间默认是S这个就是有点太长可以设定为最小值s而设定最小值之前必须要进行下面解决方式的第一步而后进行第二步s的设置下面解决socket的问题下面把解决方式贴出来 解决方式 第一步启动注册表编辑器HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 第二步新建 值名称MaxUserPort 值类型 DWORD 值数据 (用十进制的方法写进去就可以) 有效范围 (十进制) 默认 x (十进制) 第三步新建 值名称TCPTimedWaitDelay 值类型 DWORD 值数据 e(也就是这个表示TIME_WAIT的秒数) 重启电脑问题解决 |