gpt4 book ai didi

c# - 如何在与 SQL Server Express 一起使用的 Windows 服务中定义对 SQL Server 的依赖关系

转载 作者:太空狗 更新时间:2023-10-29 20:02:19 24 4
gpt4 key购买 nike

我正在使用以下代码来定义对 SQL Server 的服务依赖性:

serviceInstaller.StartType = ServiceStartMode.Automatic;
serviceInstaller.ServicesDependedOn = new[] { "MSSQLSERVER" };
Installers.Add(serviceInstaller);
Installers.Add(processInstaller);

这适用于两台机器,一台装有 SQL Server,另一台装有 SQL Server Express。但是当我在客户端服务器上安装该服务时,它失败了,因为 SQL Server Express 服务名称不同 (SQLSERVEREXPRESS)。有什么方法可以定义在两种情况下都有效的依赖关系吗?谢谢。

最佳答案

您需要使用正确的服务名称。默认实例的 SQL 服务名称是 MSSQLSERVER,(某些)Express 实例的 SQLSERVEREXPRESS 和 MSSQL$<instancename>对于命名实例。由于名称基本上是动态的,因此最好的选择是枚举 SQL Server 服务并选择正确的名称,或者在存在多个选择时提示用户。

不幸的是,我不知道有任何 API 可以枚举已安装的 SQL Server 实例。连MS support resorts to querying the registry :

Q. How do I determine how many instances of SQL Server are installed on a computer?

A: The names of all SQL Server instances on a computer can be found from the InstalledInstances value which is located under the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server

关于c# - 如何在与 SQL Server Express 一起使用的 Windows 服务中定义对 SQL Server 的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com