[C#][EntLib]服务为何会依赖于WMI Performance Adapter服务

简介:

[C#]服务为何会依赖于WMI Performance Adapter服务

编写者

日期

关键词

郑昀@ultrapower

2005-6-13

Service C# Cache

“WMI Performance Adapter”

“Microsoft Enterprise Library”

 

现象

我们的C#编写的Windows ServiceCommandListener”在Windows 2000上运行正常,但是在Windows 2003上却总是依赖于“WMI Performance Adapter”服务的启动。

而“WMI Performance Adapter”服务一般是手动启动的,这样就导致服务器重启之后,“CommandListener”服务没有能够自动启动。

但是却找不到是哪一个部分依赖于这个“WMI Performance Adapter”。

 

经过逐个排查,确定是添加了对“Microsoft Enterprise Library”的“Microsoft.Practices.EnterpriseLibrary.Caching.dll”的使用导致的。

探求究竟

System.Management.Instrumentation引发的

由于Microsoft.Practices.EnterpriseLibrary.Caching工程中,有对“System.Management.Instrumentation”的引用。

而这个“System.Management.Instrumentation”命名空间提供一些类,提供在规范应用程序管理并通过 WMI向潜在使用者公开管理信息和事件时必需的类。这样,Microsoft Application Center  Microsoft Operations Manager 等使用者就可以轻松地管理您的应用程序,而管理员脚本或其他应用程序(托管应用程序和非托管应用程序)也可以监视和配置您的应用程序。

也就是说,正是因为Microsoft.Practices.EnterpriseLibrary.Caching,所以为服务引入了“WMI Performance Adapter”服务的依赖性。

解决办法:

由于没办法通过Cache自身的配置解除对“WMI Performance Adapter”服务的依赖,我们只能主动给“CommandListener”服务加上相关服务依赖性,这样让我们的服务能够成功自动启动。

 

通过以下代码,就可以:

Code

[RunInstaller(true)]

     public class ProjectInstaller : System.Configuration.Install.Installer

     {

         private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;

         private Verifide.ServiceUtils.ServiceInstallerEx serviceInstaller1;this.serviceInstaller1.ServicesDependedOn = new string[] {

                                                                "WMI Performance Adapter"};

 

编写者

日期

关键词

郑昀@ultrapower

2005-6-13

Service C# Cache

“WMI Performance Adapter”

“Microsoft Enterprise Library”

 

目录
相关文章
|
消息中间件 网络协议 C#
C#使用Socket实现分布式事件总线,不依赖第三方MQ
`CodeWF.EventBus.Socket` 是一个轻量级的、基于Socket的分布式事件总线系统,旨在简化分布式架构中的事件通信。它允许进程之间通过发布/订阅模式进行通信,无需依赖外部消息队列服务。
C#使用Socket实现分布式事件总线,不依赖第三方MQ
《软件架构之道》c#实现依赖反转
《软件架构之道》c#实现依赖反转
183 0
|
Java C#
使用C# (.NET Core) 实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)
本文的概念内容来自深入浅出设计模式一书 现实世界中的适配器(模式) 我带着一个国标插头的笔记本电脑, 来到欧洲, 想插入到欧洲标准的墙壁插座里面, 就需要用中间这个电源适配器. 面向对象的适配器 你有个老系统, 现在来了个新供应商的类, 但是它们的接口不同, 如何使用这个新供应商的类呢? 首先, 我们不想修改现有代码, 你也不能修改供应商的代码.
1919 0
|
数据库 C#
C#设计模式之六适配器模式(Adapter Pattern)【结构型】
原文:C#设计模式之六适配器模式(Adapter Pattern)【结构型】 一、引言   从今天开始我们开始讲【结构型】设计模式,【结构型】设计模式有如下几种:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
1643 0
|
Web App开发 SQL C#
乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)
原文:乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)[索引页][源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口。
967 0
|
C# 设计模式 数据库
C#设计模式(7)——适配器模式(Adapter Pattern)
原文:C#设计模式(7)——适配器模式(Adapter Pattern) 一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。
1020 0
|
3月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
199 19
|
4月前
|
监控 算法 C#
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
583 0