Windows 服务按照常见问题

本文介绍了Windows服务在安装过程中遇到的两个常见问题及其解决办法。问题一是由于缺少安装程序类导致的错误,解决方案是在项目中添加安装程序类并设置相应代码。问题二是错误14001,通常是XML格式错误,需要检查配置文件的XML格式是否正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写了一个简单的WindowService 服务,在本机安装时,出现两个问题,随笔记录下来,如下:

问题一:安装时,提示没有 RunInstallerAttribute.Yes 的公共安装程序。在 F:\WindowService\WMP.FlowActionWindows\WMP.FlowActionWindows.exe 程序集中可能可以找到“Yes”属性。没有安装程序,因此移除 InstallState 文件。

问题原因:该服务缺少安装程序类。

解决方案:在你的项目中添加一个安装程序类,在*.Designer.cs中添加如下代码

 

/// <summary> /// /// </summary> private System.ServiceProcess.ServiceProcessInstaller WorkProcessInstaller; /// <summary> /// /// </summary> private System.ServiceProcess.ServiceInstaller WorkServiceInstaller; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.WorkProcessInstaller = new System.ServiceProcess.ServiceProcessInstaller(); this.WorkServiceInstaller = new System.ServiceProcess.ServiceInstaller(); WorkListProcessInstaller this.WorkProcessInstaller.Account = System.ServiceProcess.ServiceAccount.LocalSystem; this.WorkProcessInstaller.Password = null; this.WorkProcessInstaller.Username = null; WorkListServiceInstaller this.WorkServiceInstaller.Description = "服务名称"; this.WorkServiceInstaller.DisplayName = "服务名称"; this.WorkServiceInstaller.ServiceName = "服务名称"; this.WorkServiceInstaller.StartType = System.ServiceProcess.ServiceStartMode.Automatic; ProjectInstaller this.Installers.AddRange(new System.Configuration.Install.Installer[] { this.WorkProcessInstaller, this.WorkServiceInstaller}); } #endregion

 

问题二:错误14001

问题原因:发现这个基本上应该去我们的日志管理器查看就能看出原因。我的这个问题是XML格式导致的。

解决方案:检查配置文件的XML格式是否正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值