WCF 一步一步发布WCF服务到Windows 服务

本文详细介绍了如何将WCF服务从IIS迁移到Windows服务的步骤,包括服务协定、Windows服务类、安装程序类的创建,以及如何通过Installutil.exe和ServiceControlManager管理服务。此外,讨论了Windows服务作为宿主的优势,如自动启动和不受IIS限制。文章还提到了其他常见的WCF宿主选项,如WinForms、控制台应用程序和IIS,并对比了各自的适用场景。

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

刚才我们发布了WCF到IIS,下面咱们把WCF,再发布到Windows 服务

WCF是个好东西,对他的赞美之词的确不少,是微软无数开发者的智慧结晶,如果你在学习或者在用WCF,我真的为你感到高兴,在我上学的时候想要去解决兼容性和平衡性能问题,需要那么多专业知识和时间,而现在的WCF,只需要简单的配置就可以实现。

咱们要先用起来是第一步,不落后于时代,不排斥新技术。

如何:在托管 Windows 服务中承载 WCF 服务

本主题概述了创建由 Windows 服务承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤。此方案可通过托管 Windows 服务承载选项启用,此选项是在没有消息激活的安全环境中在 Internet 信息服务 (IIS) 外部承载的、长时间运行的 WCF 服务。服务的生存期改由操作系统控制。此宿主选项在 Windows 的所有版本中都是可用的。

可以使用 Microsoft 管理控制台 (MMC) 中的 Microsoft.ManagementConsole.SnapIn 管理 Windows 服务,并且可以将其配置为在系统启动时自动启动。此承载选项包括注册承载 WCF 服务作为托管 Windows 服务的应用程序域,因此服务的进程生存期由 Windows 服务的服务控制管理器 (SCM) 来控制。

服务代码包括服务协定的服务实现、Windows 服务类和安装程序类。服务实现类 CalculatorService 是 WCF 服务。CalculatorWindowsService 是 Windows 服务。要符合 Windows 服务的要求,该类继承自 ServiceBase 并实现 OnStart 和 OnStop 方法。在 OnStart 中,将为 CalculatorService 类型创建 ServiceHost 并打开它。在 OnStop 中,停止并释放服务。主机还负责提供服务主机基址,该基址已在应用程序设置中进行设置。安装程序类继承自 Installer,允许程序通过 Installutil.exe 工具安装为 Windows 服务。
构造服务并提供宿主代码

使用 Service.cs 文件中的计算器服务接口来定义 ICalculator 服务协定。

通过从 WCF ICalculator 接口继承,在 Service.cs 文件的 CalculatorService 类中实现服务协定作为 WCF 服务。

通过从 ServiceBase 类继承来实现 Windows 服务。重写 OnStart 方法以创建并打开 ServiceHost 的实例。重写 OnStop 方法以关闭 ServiceHost 的实例。创建 CalculatorService 实例的实例并将其命名为“WCFWindowsServiceSample”。提供应用程序的入口点。

创建 ProjectInstaller 类,此类继承自 Installer 并用设置为 true 的 RunInstallerAttribute 来标记,因此,在安装程序集时将调用 Visual Studio 的自定义操作安装程序或 Installutil.exe。

在配置中提供服务的基址。
安装并运行服务

编译服务以生成 Service.exe 可执行文件。

在命令提示符处键入 installutil bin\service.exe 来安装 Windows 服务。(如果尚未设置该工具的路径,则该工具放置在 Microsoft.NET Framework 安装目录中。)在命令提示符处键入 services.msc 以访问服务控制管理器 (SCM)。WINDOWS 服务应作为“WCFWindowsServiceSample”出现在服务中。只有在 Windows 服务正在运行的情况下,WCF 服务才能响应客户端。若要启动服务,请在 SCM 中右击服务并选中“启动”,或在命令提示符处键入 net start WCFWindowsServiceSample。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值