写点什么

便于运维的 Windows 服务

  • 2013-10-09
  • 本文字数:881 字

    阅读完需:约 3 分钟

过去几个月, DevOps on Windows 网站推出了一系列文章,详细讲解了开发者应怎样创建便于运维的Windows 服务。这一系列文章详细分析了如何克服在运维部门看来最困难的部分:Windows 服务的安装与其启动阶段。

其中有些困难是由于安装基于.Net 的Windows 服务时,普遍使用了 InstallUtil 这个非原生的 Windows 工具。同时要特别当心启动阶段的代码,它应在启动失败时确保提供清晰的错误信息,并且要能够支持运行时间较长的操作,例如从数据库中装载与缓存数据。

DevOps on Windows 网站为应对这些挑战提出的建议是基于某个非常简单的框架来创建Windows 服务,这个框架的基本前提是自包含性:即某个Windows 服务应用必须了解如何安装自己,并且妥善地处理启动阶段的各种错误。这个框架最主要的部分是以下三个类: BasicServiceInstaller BasicService BasicServiceStarter

BasicServiceInstaller提供了自行安装与卸载的功能,它为应用程序返回一个 Installer 对象,这个类提供了创建定制化安装过程的基本功能。自行安装功能意味着运维团队不需要再使用 sc 或 InstallUtil 之类的外部工具了。

BasicService确保你在启动阶段正确地与服务控制管理器进行交互,作为一种最佳实践。这个Windows 进程会管理所有已注册的Windows 服务的方方面面,包括它们的整个生命周期,并在此阶段决定这些服务所应遵循的规则。BasicService 在以下两个方面为你提供帮助:它首先确保Windows 服务无法启动时,会将有意义的错误代码返回给服务控制管理器。其次,它帮助开发者在启动阶段执行运行时间较长的操作,并且不必担心服务控制管理器会强制中止这个Windows 服务。

最后, BasicServiceStarter将负责决定这个应用的运作模式:安装服务、卸载服务、以控制台方式运行,或者是以 Windows 服务方式运行。BasicServiceStarter 还确保在 Windows 服务启动阶段可能发生的任何后台线程的异常信息都将报告给 Windows 事件日志。

这一系列共包含 7 篇文章,详细解释了这个框架的各种细节。这个网站的观点是:“与其关注于自动化,不如更加关注于你的软件的一致性与简单性”。

查看英文原文: Operations-Friendly Windows Services

2013-10-09 07:201612
用户头像

发布了 428 篇内容, 共 172.1 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

Lyn for Mac(轻量级图像查看器)v2.3.7中文版

影影绰绰一往直前

行云部署前端架构解析-前言 | 京东云技术团队

京东科技开发者

青否数字人源码一套到底需要多少钱?

青否数字人

数字人

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)

洛神灬殇

Java hashmap HashMap底层原理 2024年第十四篇文章

揭秘看不见人的“黑灯工厂”

AIRIOT

物联网平台 智慧工厂 智慧系统

重磅发布!基于百度飞桨的《人工智能基础及应用》书籍正式上线

飞桨PaddlePaddle

人工智能 机器学习 深度学习 百度飞桨

网站被大量cc攻击导致打不开怎么解决

德迅云安全杨德俊

HTTP cc

【论文解读】用于代码处理的语言模型综述

合合技术团队

代码 自然语言模型 大语言模型 文献综述

PDF Checkpoint for mac(PDF自动化批处理工具)v1.9.20激活版

影影绰绰一往直前

Pod/Node CPU 故障注入

腾讯云混沌演练平台

k8s 混沌工程

LED透明屏在舞台中的应用

Dylan

技术 设计 体验 LED显示屏 led显示屏厂家

4K Tokkit Pro for Mac(TikTok内容下载工具)v2.5.0激活版

影影绰绰一往直前

SnippetsLab for Mac(mac代码管理器)v2.4.0激活版

影影绰绰一往直前

VideoProc Converter 4K for mac(一站式视频处理软件)v6.3中文免激活版

影影绰绰一往直前

IDC 23Q3 数据发布 XSKY 对象存储软件市场份额继续蝉联第一!

XSKY星辰天合

TDengine 创始人陶建辉在汽车 CIO&CDO 论坛发表演讲,助力车企数字化转型

TDengine

tdengine 时序数据库

Tower for Mac(强大的Git客户端)v10.3注册激活版

影影绰绰一往直前

BatchOutput PDF for Mac(PDF文件批量打印软件)v3.1.3激活版下载

影影绰绰一往直前

vivo智能活动中台-悟空系统建设之路

vivo互联网技术

低代码 活动中台 AIGC技术探索

到店商详架构变迁

京东科技开发者

大家都在用哪些开源项目系统?20款推荐

PingCode

开源 项目管理 项目管理工具

云图说丨安全云脑:开箱即用的安全运营体验

华为云开发者联盟

安全 华为云 华为云开发者联盟 华为云云图说 安全云脑

2024年上海等保测评机构有几家?分别叫做什么名字?

行云管家

网络安全 等保测评 等保测评机构 上海

IPQ6010: Leading a new chapter in smart home and IoT fields

wallysSK

为什么数字人和真人一模一样?

青否数字人

如何在 Ubuntu / Raspbian 上安装 PostgreSQL

HoneyMoose

使用Docker安装MongoDB数据库

emanjusaka

mongodb Docker 迁移

高效云运维工具就是行云管家!不用加班神器!

行云管家

云计算 云服务 云运维 云管家

Project项目管理软件好用吗?实用性分析

PingCode

开源 项目管理 项目管理软件

VideoProc Converter for mac(全能视频处理软件)v6.3中文激活版

影影绰绰一往直前

便于运维的Windows服务_Windows_João Miranda_InfoQ精选文章