我为公司开发了一个软件。出于某种许可目的,我使用远程数据库来允许/禁止使用该软件。每次用户登录软件时都会应用此任务。如果互联网连接不存在或者对远程数据库的查询失败,则用户收到错误并且他无法登录软件并显示远程数据库的http地址(我不希望他看到,如果他仔细阅读误差)
我想知道的是执行相同过程的任何方式,但如果远程数据库查询失败或互联网连接不可用,它应暂时绕过检查,并在下次登录尝试时,同样的过程是紧随其后。所以我的客户不应该知道这个许可的东西。
如何在创建远程数据库查询之前检查互联网连接(LAN,WiFi,拨号或用户正在使用的任何内容)。
建议的方法:
Ping我的远程数据库服务器IP。
关于结果我从米歇尔那里得到的问题是没有稳定的解决方案。
答案 0 :(得分:7)
为什么不尝试在数据库上执行非常便宜的查询?实际上,您可以为此目的创建存储过程 - 它甚至可能会返回一些版本信息等。
毕竟,重要的不是ping是否有效,或者客户端是否可以转到其他机器:重要的是你是否可以与数据库通信。所以测试一下。
至于向用户显示的错误消息 - 当然这是在您的控制之下,因此请确保您提供适当的信息。
答案 1 :(得分:1)
答案 2 :(得分:1)
我不确定是否尝试打开与服务器的连接并在没有可见反馈的情况下捕获异常在C#中是否有效,但是您确定要使用此方法来处理许可吗?令我感到震惊的是,它不仅非常容易被发现(例如,个人防火墙会标记连接),它也很容易被击败。
此外,如果用户的计算机未连接到互联网,会发生什么?不太可能,我知道,但它可能会发生,并且您的许可方案在没有用户意识的情况下被击败。
答案 3 :(得分:0)
你也可以试试这个