[C#][EntLib]服务为何会依赖于WMI Performance Adapter服务
2005-06-13 13:49
786 查看
[C#]服务为何会依赖于WMI Performance Adapter服务
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-6-13 | Service C# Cache “WMI Performance Adapter” “Microsoft Enterprise Library” |
现象
我们的C#编写的Windows Service“CommandListener”在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[/b].serviceInstaller1.ServicesDependedOn = new string[] {[/b] "WMI Performance Adapter"};[/b] |
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-6-13 | Service C# Cache “WMI Performance Adapter” “Microsoft Enterprise Library” |
相关文章推荐
- [C#]服务为何会依赖于WMI Performance Adapter服务
- [C#]服务为何会依赖于WMI Performance Adapter服务
- C# 实现安装C#写的系统服务 不依赖InstallUtil
- C#中使用Windows消息队列服务(MSMQ)简单示例
- C# Windows服务 弹出消息提醒框
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- c#封装百度web服务geocoding api 、百度坐标转换示例
- 使用C#控制远程计算机的服务[转]
- C#中关于搜狗地图web服务api的httpresponse中回应json中文乱码的问题 Encoding
- MS SQL Reporting Services (报表服务) 2008 Tip - 不再依赖IIS
- C#一个简单windows服务的例子
- Build a service by C#.net(使用C#开发服务提供程序)
- C#:制作服务控制器
- c# 在windows服务中 使用定时器实例代码
- 【java & c#】通过控制台编译和运行程序//不依赖IDE
- 理解PHP依赖注入容器(dependency injection container)系列(三) Symfony服务容器介绍
- 【转】 c# 中为何load事件中不能画图
- 制作Windows服务和安装程序(C#版)
- dubbo启动为何不依赖容器
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现