c# - 实时监控网络状态。引发了哪些事件?

标签 c# sql-server winforms monitoring detection

我有一个 winform 应用程序,它需要知道 SQL 服务器何时可用,以便允许合并同步功能。我已经尝试了以下的变体,它们是一次性的,但我想想出一些更有活力的东西。

下面的函数(谢谢 Alex_L)正在检查运行 SQL 的 1433 端口,并且运行良好。我想要完成的是一种实时监控的方法。我必须创建 Windows 服务吗?网络连接更改等任何其他网络事件怎么办?

这个有时连接的应用程序的用法很简单。如果它们在我们的网络上,则合并复制部分可用。如果他们不在我们的网络上,那么它就不是。 SQL Server 永远不应该在我们的网络上可用,它应该在打开时始终可用。

话虽如此,我愿意接受涉及检测我们当前网络以代替 SQL 实例的解决方案。

     private static bool IsSqlAvailable()
        {
            TcpClient tcpc = new TcpClient();
             try
               {
                 tcpc.Connect("10.250.50.30", 1433);
                 return true;
               }
             catch
               {
                 return false;
               }
        }

最佳答案

您可以检查 SQL Server 的端口 1433(或其他,如果使用):

TcpClient tcpc = new TcpClient();
try
{
    tcpc.Connect("10.250.50.30", 1433);
    return true;
}
catch
{
    return false;
}

关于c# - 实时监控网络状态。引发了哪些事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159185/

相关文章:

c# - 是否可以在 .NET 中以彩色方式写入控制台?

c# - 使用 StringFormat 的字符串位置

python - 防止 SQLAlchemy 自动设置 IDENTITY_INSERT

在时态表和非时态表之间使用 EXCEPT 的 SQL 子查询给出表达式数量错误

sql - 保证随机插入

c# 表单最小化/最大化按钮不见了?

c# csv 使用第三列对列表进行排序

c# - 在 LINQPad 中使用 Dump() 扩展方法和使用 Console.WriteLine() 有什么区别?

c# - 将数据从(大)文件 Excel 导入到 datagridview,然后导入数据库 - 为什么插入到数据库需要这么长时间并且不保存所有数据?

c# - 与在 C# 中隐藏和显示表单相比,关闭表单并重新加载所有数据有什么好处?