首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET中检查服务器是否可访问的最佳方法是什么?

在.NET中检查服务器是否可访问的最佳方法是什么?
EN

Stack Overflow用户
提问于 2008-09-25 18:15:37
回答 5查看 2.4K关注 0票数 2

我已经在C#中创建了一个时钟应用程序,它连接到我们服务器上的web服务,以便为员工打卡上班/下班。应用程序驻留在系统托盘中,如果用户关闭/挂起他们的机器,或者如果他们空闲超过三个小时,它就会在最后一次活动时对他们进行时钟退出。

我的问题是,当用户将他的机器从睡眠状态(触发SystemEvents.PowerModeChanged事件)恢复时,应用程序会尝试给员工打卡,但此时网络连接尚未完全初始化,web服务调用超时。

一个显而易见的解决方案,尽管是一个黑客,将是延迟打卡,但这并不一定能解决所有的问题。我想要做的是一种“无情的”时钟,它会一直等到看到服务器,直到它真正尝试打卡。

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-09-25 18:19:47

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

票数 3
EN

Stack Overflow用户

发布于 2008-09-25 18:27:58

在处理事件时,将连接代码放入一个方法中,该方法将一直循环到成功,捕获错误并重试。

即使是延迟也不是完美的,因为根据运行的单个系统和其他应用程序,重新建立网络连接可能需要不同的时间。

票数 0
EN

Stack Overflow用户

发布于 2008-09-25 18:28:00

如果问题是重新建立网络服务的延迟,Ping就是解决方案;这就像按门铃查看是否有人在家一样

如果ping成功,那么尝试调用web服务,适当地捕获异常(我认为SocketException和SoapException都可能发生,具体取决于就绪情况/响应速度)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/134992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档