.NET检查全文过滤守护程序启动程序是否正在运行

时间:2014-01-29 11:05:46

标签: c# .net sql-server

有没有办法知道全文服务是否在C#代码的MSSQL服务器下运行? 我试过没有运气的Server.FullTextService.State。感谢

好的从ServiceController获取服务状态在本地计算机上运行正常,但是如果你想知道服务是否在远程运行,它就会失败。

一个问题是查询sys.dm_server_services:

  select status_desc from sys.dm_server_services WHERE filename LIKE '%fdlauncher.exe%'

  select status_desc from sys.dm_server_services WHERE service_account = 'NT service\MSSQLFDLauncher'

请注意,此方法可能不适用于某些SQL 2012实例上的全文服务:

http://sqlandme.com/tag/sys-dm_server_services/ http://www.mssqltips.com/sqlservertip/2611/sql-services-status-check--an-evolution-part-3/

2 个答案:

答案 0 :(得分:0)

如果此服务在本地系统上运行,您只需使用以下代码进行检查:

 using System.ServiceProcess;

 ...

        ServiceController sc = new ServiceController("MSSQLFDLauncher$MSSQLSERVER2012");

        switch (sc.Status)
        {
            case ServiceControllerStatus.Running:
                Console.WriteLine("Running");
                break;
            default:
                Console.WriteLine("Else");
                break;
        }

您可以在Windows服务中检查服务名称。

编辑: 要自动检查服务名称,请使用以下代码:

DataTable dt = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources();
ServiceController sc
foreach(DataRow d in dt.Rows)
{
 string instance = dr["InstanceName"].ToString();
 sc = new ServiceController("MSSQLFDLauncher$"+instance );

 switch (sc.Status)
        {
            case ServiceControllerStatus.Running:
                Console.WriteLine("MSSQLFDLauncher for" + instance + "is Running");
                break;
            default:
                Console.WriteLine("MSSQLFDLauncher for" + instance + "is NOT Running");
                break;
        }
}

答案 1 :(得分:0)

我在这里找到了很好的解决方案:  http://www.mssqltips.com/sqlservertip/2611/sql-services-status-check---an-evolution-part-3/     如果不确定服务名称,可以使用这样的查询(适用于MSSQL Server 2008R2和2012):

 select status_desc from sys.dm_server_services WHERE filename LIKE '%fdlauncher.exe%'

 select status_desc from sys.dm_server_services WHERE service_account = 'NT Service\MSSQLFDLauncher'

某些MSSQL 2012(Denali)服务器存在轻微缺点(错误)sys.dm_server_services仅返回SQL Server代理的状态 更多细节在这里: http://sqlandme.com/tag/sys-dm_server_services/ 希望这会对某人有所帮助!