【问题标题】:WCF service deployment - toolsWCF 服务部署 - 工具
【发布时间】:2011-12-24 11:09:34
【问题描述】:

有一个 WCF 服务在 IIS 下运行。该服务访问其文件夹中的文件,访问 SQL Server 数据库并将消息写入事件日志。

部署平台是某些数据中心的Windows Server 2008。我开发了这项服务,但我真的还是个初学者。

部署将导致创建新的 Windows 用户帐户,并可能创建分配给该用户的角色。这是从具有严格定义权限的单独帐户启动服务所必需的(据我了解,建议使用此方法,但不要从 NT 服务帐户启动服务)。

显然,部署需要运行脚本来创建数据库、表、调度任务。

您可以建议哪些工具来完成这样的部署?也许我可以使用标准的安装项目?还是一些第三方工具,例如 WiX Toolset?我应该使用 PowerShell 创建 Windows 用户帐户和角色吗?

还有一个问题:我是不是应该拉取先决条件,比如.NET框架安装程序、SQL Server安装程序?

【问题讨论】:

  • 任何带有完整源代码示例的最终解决方案?
  • 最终解决方案变成了 VS 标准功能。 VS 可以创建一个包含 WCF 服务和你想要的脚本的部署包。
  • 任何关于它的完整样本?任何网络参考指南?

标签: wcf deployment powershell


【解决方案1】:

您可以使用 WIX、InstallShield 或 Advanced Installer 等工具依赖 Windows 安装程序。 WIX 是唯一免费的,尽管它的学习曲线更高。还有其他免费的 Windows 安装软件解决方案可用,例如 NSIS。您还可以编写自己的脚本,例如在 Powershell 中创建 IIS 虚拟目录、应用程序池并连接到 RDBMS 以创建架构。您可能还希望有一个取消部署解决方案,以便将来可以卸载并升级它。基于 Windows 安装程序的工具几乎可以让您免费卸载,因为它维护了一个数据库,其中包含安装期间完成的所有操作,而无需您编写自定义操作,例如数据库架构设置。

对于用户配置部分,其中一些工具(例如 Advanced Installer)可以创建新的用户帐户。但是,要定义用户权限分配,您可能必须依赖使用 Windows 资源工具包中的 ntrights.exe 的自定义脚本。

【讨论】:

  • 那么 Inno Setup 呢? WiX 或 NSIS 是否提供执行 .NET 代码和 PowerShell 脚本的能力?
  • Wix 可以通过在自定义操作中调用它来运行 .NET 代码。这是一个 example 如何构建你的 c#。自定义操作代码将驻留在从 Windows 安装程序引擎调用的 DLL 中。我从未使用过 NSIS 或 Inno,但只是查看了功能集和一些文档,看起来您必须创建一个 c# 控制台应用程序并通过 shell 调用它。看起来他们有自己的引擎并且不使用 Windows 安装程序引擎。 Wix 具有用于处理数据库和创建用户帐户的扩展。
【解决方案2】:

据我所知,没有可用于 WCF 的自动部署工具,因为它需要大量手动配置。

但是你可以试试 Octopus 的 .NET 应用程序

http://www.paulstovell.com/octopus/intro

【讨论】:

  • VS2010中有WCF的自动部署工具。 VS 可以创建一个部署包,其中包含一个 WCF 服务和创建数据库所需的脚本。问题出在我需要配置的自定义设置中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多