前言
在定位用户问题时,发现有些电脑,会出现系统时间不是最新的问题。
可能原因:
- 取消了勾选服务器时间同步
- 当前安装的系统,是一个未知来源系统,导致系统时间更新失败
而系统时间不正确,会导致IE选项-证书,校验不通过~
更新系统时间
1. 连接时间服务器
时间服务器列表(推荐): string[] timeHosts = { "time.windows.com", "time.nist.gov" };
1 /// <summary> 2 /// 连接时间服务器 3 /// </summary> 4 /// <param name="socket">服务器接口</param> 5 /// <param name="startTime">开始时间</param> 6 /// <param name="errorMsg">错误信息</param> 7 /// <returns></returns> 8 private static bool TryConnectToTimeServer(out Socket socket, out DateTime startTime, out string errorMsg) 9 { 10 socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建Socket 11 socket.ReceiveTimeout = 10 * 1000;//设置超时时间 12 errorMsg = string.Empty; 13 startTime = DateTime.Now; 14 15 // 遍历时间服务器列表 16 foreach (string strHost in timeHosts) 17 { 18 try 19 { 20 // 记录开始的时间 21 startTime = DateTime.Now; 22 23 var iphostinfo = Dns.GetHostEntry(strHost); 24 var ip = iphostinfo.AddressList[0]; 25 //建立IPAddress对象与端口,创建IPEndPoint节点: 26 int port = 13; 27 var ipe = new IPEndPoint(ip, port); 28 //连接到服务器 29 socket.Connect(ipe); 30 // 如果连接到服务器就跳出