c# - Windows 服务 : check if base service is running

标签 c# .net sql-server service

我已经创建了一个连接到 SQL 服务器的窗口服务。

但问题是当服务器重新启动时,我的服务尝试在 SQL 服务器服务启动之前连接到 SQL 服务器,因此我的服务抛出异常。

有什么方法可以在我的服务启动之前检测基本服务(SQL 服务器)是否正在运行。

我看过here但这仅适用于安装时间。

最佳答案

您可以将 SQL Server 定义为服务的依赖项,但这并不能解决问题。 SQL Server 服务报告很快就处于“运行”状态。但是当尝试连接时你会得到一个异常,因为它在内部仍然很忙。

除了重试连接数据库直到最终成功之外,似乎没有可靠的方法。

另见 this question

关于c# - Windows 服务 : check if base service is running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902625/

相关文章:

sql - 以逗号分隔的字符串形式检索 SQL 关系

c# - 是否应该避免使用 LINQ,因为它很慢?

c# - MVVM Light SimpleIoC 与 Ninject

C# WinForms Model-View-Presenter(被动 View )

c# - 获取命名空间内的所有类

.net - 为什么当参数作为参数传递时 sp_executesql 运行速度变慢

c# - IList有没有类似ForEach的方法?

.net - 使用自定义 SerializerSettings 将 JToken 转换为 .NET 类型

.net - 托管 C++ 方法命名

sql-server - 为什么 SQL 函数比 UDF 快