我已经用C#创建了一个时钟应用程序,该应用程序连接到服务器上的Web服务,以便为员工定时上班或下班。该应用程序驻留在系统托盘中,如果用户关闭/挂起了计算机或空闲了三个小时以上,则将用户驱逐出局,并在上一次活动时将其驱逐出局。

我的问题出现了,当用户使计算机从睡眠状态恢复(这会引发SystemEvents.PowerModeChanged事件)时,应用程序尝试将员工重新安排回去,但此时网络连接尚未完全初始化,并且网络服务呼叫超时。

一个显而易见的解决方案(尽管是hack)是延迟时间,但这并不一定能解决所有问题。我想要做的是一种“不间断”的时钟,它将在其中等待直到看到服务器为止,直到它真正尝试进行时钟输入为止。

确定是否可以建立与Web服务的连接的最佳方法是什么?

最佳答案

最好的方法是实际尝试建立连接并捕获错误。您可以对计算机执行ping操作,但这只会告诉您计算机是否正在运行以及是否在网络上,这并不一定反映Web服务是否正在运行以及是否可用。

10-07 12:03
查看更多