C#:监控连接

C#: Monitoring Connections

我正在编写一个应用程序,它有一个 SslStream/NetworkStream/TcpClient 以及多个 SqlConnection 实例。我不断地通过它们发送和接收数据,但由于这是一个在本地和远程访问多个服务器的应用程序,我需要监视连接是否失败,并在失败时以某种方式尝试重新启动它们。对于我应该如何监视这些 类,是否有 Microsoft 支持的约定?该文件并没有真正向我展示任何东西。我已经为 SslStream 尝试了 CanRead/CanWrite,当然,我确实有能力监控超时。是否有建议的时间来计时? monitoring/counting 超时是监控连接丢失的唯一方法吗?

托管 SqlConnection 实例应该是短暂的。仅在需要时创建它们,然后处理它们。不要让它们在您的应用程序中随处可见,以备不时之需,这是一种非常糟糕的做法。原因是 Sql 服务器(以及其他数据库)实现了连接池,因此创建托管连接相对便宜,因为底层连接一旦释放回池就会被重用。