检查是否已安装用于索引服务器的Microsoft OLE DB提供程序(aka Provider = MSIDXS)? [英] Check if Microsoft OLE DB Provider for Index Server (aka Provider=MSIDXS) is installed?

查看:97
本文介绍了检查是否已安装用于索引服务器的Microsoft OLE DB提供程序(aka Provider = MSIDXS)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Windows Server 2008 R2和ASP.NET 4.6.1.

I use Windows Server 2008 R2 and ASP.NET 4.6.1.

如何检查是否已安装用于索引服务器的Microsoft OLE DB提供程序(Provider = MSIDXS)?

How can I check if Microsoft OLE DB Provider for Index Server (Provider=MSIDXS) is installed ?

也许会获得系统中可用的OLEDB提供程序的列表.

Maybe get a list the OLEDB providers available in the system.

推荐答案

我尝试使用此代码.

我现在不知道是否适用于所有 32位和64位提供商.

I don't know now if applies to all 32bit and 64bit providers.

向导C8B522D0-5CF3-11ce-ADE5-00AA0044773D

internal static Guid IID_IUnknown = new Guid("00000000-0000-0000-c000-000000000046");
internal static Guid CLSID_DataLinks = new Guid("2206CDB2-19C1-11d1-89E0-00C04FD7A829");
internal static Guid CLSID_OLEDB_ENUMERATOR = new Guid("C8B522D0-5CF3-11ce-ADE5-00AA0044773D");
internal static Guid CLSID_MSDASQL_ENUMERATOR = new Guid("C8B522CD-5CF3-11ce-ADE5-00AA0044773D");


private string GetOLEDBProvidersRegistered()
{
    var res = "";
    try
    {
        Guid guidOleDbEnum = new Guid("{C8B522D0-5CF3-11ce-ADE5-00AA0044773D}");

        Type type = Type.GetTypeFromCLSID(guidOleDbEnum);

        using (OleDbDataReader rdr = OleDbEnumerator.GetEnumerator(type))
        {
            while (rdr.Read())
                //Console.WriteLine("{0} - {1}", rdr["SOURCES_NAME"], rdr["SOURCES_DESCRIPTION"]);
                res += string.Format("{0} - {1}\r\n", rdr["SOURCES_NAME"], rdr["SOURCES_DESCRIPTION"]);

        }
    }
    catch (Exception ex)
    {
        res = ex.Message;
    }
    return res;
}

这篇关于检查是否已安装用于索引服务器的Microsoft OLE DB提供程序(aka Provider = MSIDXS)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆