我有一个项目,我们希望在其中执行以下操作:
是否有可能,如果是这样的话? A和B都有一个SQL Server 2008,但这部分由我们处理。
非常感谢。
编辑:我尝试停止服务(我知道它正在运行)并且似乎无法正常工作:
Dim path As ManagementPath = New ManagementPath
path.Server = System.Environment.MachineName
path.NamespacePath = "root\CIMV2"
path.RelativePath = "Win32_service.Name='" + strServiceName + "'"
Dim service As ManagementObject = New ManagementObject(path)
Dim temp As ManagementBaseObject = service.InvokeMethod("StopService", Nothing, Nothing)
Dim path As ManagementPath = New ManagementPath
path.Server = System.Environment.MachineName
path.NamespacePath = "root\CIMV2"
path.RelativePath = "Win32_service.Name='" + strServiceName + "'"
Dim service As ManagementObject = New ManagementObject(path)
Dim temp As ManagementBaseObject = service.InvokeMethod("StopService", Nothing, Nothing)
在这种情况下,strServiceName是“CommunicationInterface”,这是我最近手动添加和启动的服务。
我在Windows 7下运行。
答案 0 :(得分:1)
只需将服务设置为不自动启动,然后让C计算机根据需要使用WMI类Win32_Service启动它们。您还可以使用此类来查询服务是否正在运行。
查看StartService和StopService方法以及State
属性。
以下是一些示例代码:Service Management in VB.NET
答案 1 :(得分:1)
你应该研究Windows Server 2008 Failover Clusters。从该页面:
故障转移群集是一组 有效的独立电脑 一起增加可用性 的应用程序和服务。该 群集服务器(称为节点)是 通过物理电缆连接 软件。如果是其中一个集群节点 失败,另一个节点开始提供 服务(称为故障转移的过程)。 用户体验至少 服务中断。