Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MMC管理单元中接收WMI事件的COM异常_.net_Com_Mmc_Mmc3 - Fatal编程技术网

.net MMC管理单元中接收WMI事件的COM异常

.net MMC管理单元中接收WMI事件的COM异常,.net,com,mmc,mmc3,.net,Com,Mmc,Mmc3,我正在尝试创建一个MMC管理单元,该管理单元将接收并显示从我的服务触发的日志事件。我已经创建了watcher,它可以正确启动,但是当我尝试将节点添加到MmcListView时,我得到了一个COMException,它表示无法使用与其底层RCW分离的COM对象 以下是相关代码: private void LogEvent_EventArrived(object sender, EventArrivedEventArgs e) { LogEvent logEvent = new LogEve

我正在尝试创建一个MMC管理单元,该管理单元将接收并显示从我的服务触发的日志事件。我已经创建了watcher,它可以正确启动,但是当我尝试将节点添加到MmcListView时,我得到了一个COMException,它表示无法使用与其底层RCW分离的COM对象

以下是相关代码:

private void LogEvent_EventArrived(object sender, EventArrivedEventArgs e)
{
    LogEvent logEvent = new LogEvent(e.NewEvent);
    if (SnapIn.InvokeRequired)
    {
        object[] args = new object[] { logEvent };
        SnapIn.Invoke(new ManagementAction(AddEvent), args);
    }
    else
        AddEvent(logEvent);
}
LogEvent类是一个简单的类,用于将ManagementBaseObject属性转换为易于编码的类型安全属性。AddEvent方法执行将LogEvent对象添加到MmcListView的ResultNodes列表的实际工作


我提到的异常实际上是在触发第二个事件时调用的,并且似乎发生在调用invokererequired时。我不知道这里到底发生了什么。有什么想法吗?

好吧,这太愚蠢了。。。但事实是,我通过Invoke调用的方法抛出了一个异常,它并没有像调用者预期的那样冒泡,而是显示为奇怪的COM异常。一旦我清除了通过委托调用的方法中的异常,一切都正常