ssis c#脚本任务:'else'无法捕获窗口服务的正确状态

问题描述 投票:1回答:1

我需要使用ssis c#脚本任务来检查服务'AutomationServices'是否在多个远程服务器上运行(变量的返回值已写入数据库表)。我有以下代码,但是所有服务器的状态都显示为“正在运行”,即使对于未运行服务的服务器也是如此。为什么“其他”部分不起作用?

ServiceController sc = new ServiceController();
sc.ServiceName = "AutomationServices";
sc.MachineName = Dts.Variables["User::Server"].Value.ToString();

if (sc.Status == ServiceProcess.ServiceControllerStatus.Running)
{
    Dts.Variables["User::ServiceStatus"].Value = "Running";
}
else 
{
    Dts.Variables["User::ServiceStatus"].Value = "NotRunning";
}
c# ssis windows-services
1个回答
0
投票

我试图仅将servicecontroller状态传递给dts变量,但未传递任何内容,表中的status字段为空,这里缺少什么?为什么它不将状态值(“正在运行”,“已停止”等)传递给变量?

if (sc.Status != null)
        {
        Dts.Variables["User::ServiceStatus"].Value = sc.Status.ToString();
        }
© www.soinside.com 2019 - 2024. All rights reserved.