2

您如何编写一个进程内 WMI 提供程序作为用 .NET 编写的 Windows 服务的一部分?

我编写了一个将解耦托管模型用作独立应用程序的提供程序,但无法弄清楚如何获得使用 Hosting Model = ManagementHostingModel.NetworkService 工作的 Windows 服务。

这是我正在使用的提供者类型:

    [ManagementEntity]
public class Stuff
{
    private readonly string _id;

    public Stuff( string id )
    {
        _id = id;
    }

    [ManagementKey]
    public string Id
    {
        get { return _id; }
    }

    [ManagementProbe]
    public DateTime Time
    {
        get { return DateTime.UtcNow; }
    }

    [ManagementEnumerator]
    public static IEnumerable Enumerate()
    {
        for ( int i = 0; i < 5; i++ )
        {
            yield return new Stuff( i.ToString() );
        }
    }
}

我使用以下方式注册:

InstrumentationManager.RegisterType(typeof (Stuff));

每次我在尝试读取属性值时尝试访问 WMI 类时,都会抛出一些奇怪的异常。

似乎必须有一些非常简单的东西我忽略了。

4

1 回答 1

5

我唯一缺少的是必须在 GAC 中安装进程内提供程序。有关更多详细信息,请参阅本文

于 2008-12-30T01:26:54.023 回答