C# .NET中Windows服务的进程内WMI提供程序

C# .NET中Windows服务的进程内WMI提供程序,c#,.net,windows-services,wmi,C#,.net,Windows Services,Wmi,如何将进程内WMI提供程序编写为.NET中编写的Windows服务的一部分 我编写了一个提供程序,该提供程序将解耦合托管模型用作独立应用程序,但不知道如何使使用托管模型=ManagementHostingModel.NetworkService的Windows服务正常工作 这是我正在使用的提供商类型: [ManagementEntity] public class Stuff { private readonly string _id; public Stuff( st

如何将进程内WMI提供程序编写为.NET中编写的Windows服务的一部分

我编写了一个提供程序,该提供程序将解耦合托管模型用作独立应用程序,但不知道如何使使用托管模型=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() );
        }
    }
}
每次我试图读取属性值时访问WMI类,都会抛出一些奇怪的异常


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

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

您如何向提供商获取有关您的特定服务的信息?我发现的所有示例都提供了固定数据(如
内容
)或系统数据(如
DateTime.UtcNow
,或运行进程列表)。如果WMI主机正在实例化和运行耦合的提供程序,那么它如何获取要提供的特定于应用程序的数据?
InstrumentationManager.RegisterType(typeof (Stuff));