Checkingiftheserverisavailable我正在寻找一种方法来检查服务器是否仍然可用。我们有一个将数据保存在服务器上的离线应用程序,但是如果服务器连接断开(偶尔会发生),我们必须将数据保存到本地数据库而不是在线数据库。所以我们需要不断检查服务器是否仍然可用。我们在此应用程序中使用C#检查sqlconnection.opensqlconnection.open不是一个选项,因为在抛出错误之前大约需要20秒,我们不能等那么久+我也在使用一些http服务。只需使用System.Net.NetworkInformation.Ping类。如果您的服务器没有响应ping(出于某种原因您决定阻止ICMPEcho请求),您将必须为此创建自己的服务。就个人而言,我根本不会阻止ICMPEcho请求,我认为这是可行的方法。长期以来一直使用ping命令来检查主机的可达性。使用System.Net.NetworkInformation;varping=newPing();varreply=ping.Send("google.com",60*1000);//1分钟超时(以毫秒为单位)//或...reply=ping.Send(newIPAddress(newbyte[]{127,0,0,1}),3000);如果连接像你说的那样不可靠,我不会使用单独的检查并将数据保存在异常处理的本地部分。我的意思是,如果连接失败并抛出异常,您可以切换策略并在本地保存数据。如果您先检查然后连接丢失(当您实际保存数据时),那么您仍然会有一个需要处理的异常。所以初步检查是不必要的。如果您可以假设在成功检查后连接已启动,则此检查很有用。从您的问题看来,连接到服务器的目的似乎是使用其数据库。您的首要任务是检查您是否可以成功连接到数据库。不管您是否可以PING服务器或获得HTTP响应(如其他答案中所建议的),除非您成功建立与数据库的连接,否则您的进程将失败。您提到检查数据库连接花费的时间太长,为什么不将应用程序连接字符串中的连接超时设置更改为更不耐烦的设置(例如5秒(连接超时=5))?如果这是一个SQL服务器,那么你可以尝试打开一个新的连接。如果SqlConnection.Open方法失败,您可以检查错误消息以确定服务器是否不可用。你现在做的是:如何判断服务器是否可用?使用捕获块。这是最简单的如果您实际上有一个本地数据库(而不是等待插入的事务或数据列表),我会更改设计:我会让您判断并发约束和其他与你的应用程序选择一个解决方案。因为你想看看数据库服务器是否存在,当你尝试连接到数据库或使用套接字时捕获任何错误,并且在某些服务上尝试与服务器的原始连接,我建议数据库是这样的您需要的资源。以上就是C#学习教程:检查服务器是否可用的所有内容分享,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注——本文收藏来自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
