【发布时间】:2019-06-08 06:19:46
【问题描述】:
是否可以通过其他 Windows 服务或相同的 Windows 服务启动/停止 Windows 服务?我有在多台 PC 上运行的 windows 服务,因为我想在任何版本更改时更新该服务,所以我想通过其他或相同 windows 服务的代码来处理 windows 服务?
【问题讨论】:
标签: c# .net windows-services
是否可以通过其他 Windows 服务或相同的 Windows 服务启动/停止 Windows 服务?我有在多台 PC 上运行的 windows 服务,因为我想在任何版本更改时更新该服务,所以我想通过其他或相同 windows 服务的代码来处理 windows 服务?
【问题讨论】:
标签: c# .net windows-services
通常升级服务需要替换它的 exe 和支持的 DLL,但不需要额外的注册表更改,除非要更改服务注册的某些内容(例如启动类型)。
您的服务没有理由无法启动将停止、替换和重新启动服务的小型更新程序,但通常您不会成功让任何正在运行的程序自行替换,因为 exe 往往最终被锁定/正在使用在它运行时。更新程序不需要注册为服务
请注意,您可能必须使用有权停止/重新启动服务并更改 program files 子文件夹的凭据来启动更新程序;服务通常应该使用尽可能低的(最少权限)运行,并且使用相同的凭据运行更新程序应用程序可能不会提供足够高的权限来替换 exe
请参阅How can a program delete its own executable 了解有关自我更换程序的更多想法
【讨论】: