【问题标题】:How to check if internet connectivity available or not in C#如何在 C# 中检查 Internet 连接是否可用
【发布时间】:2010-09-21 12:29:08
【问题描述】:

我为一家公司开发了一个软件。出于某种许可目的,我使用远程数据库来允许/禁止使用该软件。每次用户登录软件时都会应用此任务。如果互联网连接不存在或对远程数据库的查询失败,用户会收到错误,他无法登录软件并显示远程数据库 http 地址(我不想让他看到,如果他仔细阅读错误)

我想知道的是任何方式做同样的程序,但如果远程数据库查询失败或互联网连接不可用,它应该暂时绕过检查,下次登录尝试时,同样的程序是跟着。所以我的客户不应该知道这个许可的东西。

在创建对远程数据库的查询之前,如何检查互联网连接(LAN、WiFi、拨号或用户正在使用的任何东西)。

建议的方法:

  1. Ping 我的远程数据库服务器 IP。

  2. This Question by Michel

关于我从 Michel 的问题中获得的结果,并没有稳定的解决方案。

【问题讨论】:

标签: c#


【解决方案1】:

为什么不尝试对数据库执行一个非常便宜的查询呢?实际上,您可以为此目的创建一个存储过程——它甚至可以返回一些版本信息等。

毕竟,重要的不是 ping 是否有效,或者客户端是否可以访问其他机器:重要的是您是否可以与数据库通信。所以要准确地测试一下。

至于向用户显示什么错误消息 - 这肯定在您的控制之下,因此请确保您提供适当的信息。

【讨论】:

    【解决方案2】:

    试试这个:

    Check Internet Connection

    【讨论】:

      【解决方案3】:

      我不确定在 C# 中尝试打开与服务器的连接并捕获没有可见反馈的异常是否有效,但您确定要使用此方法来处理许可问题吗?令我震惊的是,它不仅很容易被发现(例如个人防火墙会标记连接),而且很容易被击败。

      此外,如果用户的计算机未连接到互联网会怎样?我知道这不太可能,但它可能会发生,并且您的许可方案会在用户没有有意识的努力的情况下失败。

      【讨论】:

      • @r_ 你能建议我任何易于使用的方法和程序吗?确保我不想将任何第三方软件用于特定目的。如果我也能得到一些例子,我会很感激你......
      • @boota:这不是我的专业领域,所以我无法向任何权威人士说明什么是好的解决方案,但乍一看,在我看来,您可以选择以某种方式需要数据库连接(以及对用户明确的要求),或移动到非网络许可证检查。快速的 Google/SO 搜索会为此提出一些建议。
      【解决方案4】:

      你也可以试试这个

      C# - Check internet connection

      【讨论】:

      • 您能否详细说明链接的内容以及它与问题的关系?在目前的形式中,这看起来像是针对已接受答案的旧问题的垃圾邮件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2019-09-03
      • 2010-10-03
      • 2018-11-21
      相关资源
      最近更新 更多