ASP.NET Web 部署 - 推荐的资源
本主题提供了有关如何使用 Visual Studio 2010 ASP.NET、Visual Web Developer 2010 及更高版本将 web 应用程序部署到 IIS 的文档资源的链接。
如果你知道一篇出色的博客文章、 stackoverflow 线程或任何其他有用的链接, 请向我们 发送电子邮件并发送链接。
注意
其中许多资源描述了仅在安装 Visual Studio Web 发布更新的最新版本时可用的部署功能。 某些功能仅在 Visual Studio 2012 或 Visual Studio 2013 中可用。
本主题包含以下各节:
- 了解 Web 项目的部署选项
- 查找 ASP.NET 应用程序的托管提供程序
- 从 Visual Studio 部署 Web 应用程序
- 通过创建和安装 Web 部署包来部署 Web 应用程序
- 使用持续集成(CI)过程部署 Web 应用程序
- 使用 Web.config 转换在部署期间更改目标 Web.config 文件或 app.config 文件中的设置
- 使用 Web 部署参数在部署期间更改目标 Web 应用程序中的设置
- 确保应用程序在部署期间处于非在线状态
- 在 Web 应用程序部署过程中部署数据库或更改数据库
- 独立于 Web 应用程序部署部署数据库
- 部署使用 ASP.NET 应用程序服务的 Web 应用程序,例如成员身份和分析
- 预编译部署
- 部署 Intranet Web 应用程序
- 自动执行未自动执行的常见部署任务
- 配置 Web 服务器,以便开发人员可以使用 Web 部署将 Web 应用程序部署到它们
- 为托管提供程序配置服务器
- 排查部署问题
- 获取有关特定部署问题的帮助
- 其他资源
了解 Web 项目的部署选项
- Visual Studio 和 ASP.NET 的 Web 部署概述(MSDN)。
- 如何部署 Windows Azure 网站。 介绍用于将 Web 项目部署到 Windows Azure 网站的选项和链接,包括 持续交付 (从 源代码管理自动执行),以及使用 Visual Studio。
- Visual Studio 2012 Web 发布改进 (斯科特·汉塞尔曼的视频)。
- VS 2010 中的 Web 部署概述文章(Vishal Joshi 的博客)。 较旧的博客文章,但它链接到的一些 Visual Studio 2010 资源包含与 Visual Studio 2012 相关的信息。
查找 ASP.NET 应用程序的托管提供程序
从 Visual Studio 部署 Web 应用程序
- 如何部署 Windows Azure 网站。 介绍选项并提供用于将 Web 项目部署到 Windows Azure 网站的资源的链接。 包括一个有关从 Visual Studio 进行部署的部分。
- 使用 Visual Studio 的 ASP.NET Web 部署。 12 部分教程系列介绍如何使用 SQL Server 数据库部署 Web 应用程序。 对于数据库部署,请使用 dbDacFx 提供程序和Entity Framework Code First 迁移。 还包括有关 Web.config 文件转换、部署单个文件、命令行部署以及如何通过编辑 .pubxml 文件自定义 Visual Studio Web 发布管道的信息。 适用于所有 ASP.NET Web 项目,包括 Web 窗体、MVC 和 Web API。
- 如何:在 Visual Studio 中使用一键式发布部署 Web 项目(Visual Studio Web 发布向导的参考信息)。
- 使用 Visual Studio 通过 SQL Server Compact 部署 ASP.NET Web 应用程序。 这是使用本节顶部列出的 Visual Studio ASP.NET Web 部署的早期版本。 主要适用于有关如何部署 SQL Server Compact 数据库以及如何从 SQL Server Compact 迁移到完整版 SQL Server 的信息。
- 使用存储表、队列和 Blob 的 .NET 多层应用程序(Microsoft Azure 站点)。 5 部分教程系列介绍了如何创建 MVC 项目并将其部署到 Windows Azure 云服务。
通过创建和安装 Web 部署包来部署 Web 应用程序
- 如何:在 Visual Studio 中创建 Web 部署包(MSDN)。
- 如何:使用 Visual Studio 创建的deploy.cmd文件(MSDN)安装部署包。
- 使用 Web 部署包部署到开发框上的 IIS 和第三方主机 (Sayed Hashimi 的博客)。 如何使用 IIS 管理器在本地计算机上安装 IIS 中的部署包,以及支持 IIS 管理器进行远程管理的托管公司。
- 从 Visual Studio 2010 生成 Web 部署包(IIS.NET 网站)。 包括有关命令行包创建和安装的说明。
- 包一旦发布任何地方 (Sayed Hashimi 的博客)。 介绍一个 NuGet 包,该包可自动转换多个目标环境的 Web.config 文件的过程,以便可以将一个包部署到多个服务器。 另请参阅 Sayed Hashimi 的 PackageWeb 视频 。
另请参阅以下部分。
使用持续集成(CI)过程部署 Web 应用程序
- 持续集成和持续交付(使用 Windows Azure 构建真实云应用)。 介绍持续集成和持续交付的电子书章节。
- 如何部署 Windows Azure 网站。 介绍用于将 Web 项目部署到 Windows Azure 网站的选项和资源的链接。 包括一个有关从源代码管理自动部署的部分。
- 在企业方案中部署 Web 应用程序。 40 部分教程系列介绍了如何使用 Visual Studio 2010 和 Team Foundation Server 2010 在 CI 过程中自动部署。
- 在Microsoft 生成引擎:使用 MSBuild 和 Team Foundation Build,由 Sayed Hashimi 和 William Bartholomew 使用。 这是一本书,不是 Web 资源,但它是了解如何为持续集成方案配置 MSBuild 的基本指南。
- MSBuild 扩展包。 包括部署任务。
- Team Foundation 生成自定义指南。 ALM Rangers 关于设置 Team Foundation Server 的文档涵盖 Web 部署,包括教程和视频。
- SlowCheetah XML 从 CI 服务器 转换(Sayed Hashimi 的博客)。 介绍如何使用 SlowCheetah、Visual Studio 加载项转换 app.config 和其他 XML 文件。
另 请参阅此页的后面部分,确保应用程序在部署 过程中处于非在线状态。
使用 Web.config 转换在部署期间更改目标 Web.config 文件或 app.config 文件中的设置
- Web.config 文件转换。
- 使用 Visual Studio 进行 Web 项目部署的 Web.config 转换语法(MSDN)。
- Web 工具 2012.2 - web.config 转换 (Sayed Hashimi 的 YouTube 视频)。 演示如何设置和预览 Web.config 转换。
- 如何实现禁用 Web.config 转换? (MSDN)。
- 何时应使用 Web 部署参数而不是 Web.config 转换? (MSDN)。
- XDT (XML 文档转换)在 codeplex.com (.NET Web 开发和工具博客)上发布。 宣布 Web.config 文件转换引擎的源代码可用性,并列出一些使用它的工具。
- Windows Azure 网站:应用程序字符串和连接字符串的工作原理 (Microsoft Azure 博客)。 如果目标环境是 Windows Azure 网站,并且想要转换或转换
appSettings
,connectionStrings
则 Web.config 转换的替代方法。
使用 Web 部署参数在部署期间更改目标 Web 应用程序中的设置
- 如何:在 Web 部署包 中使用 Web 部署参数(MSDN)。
- MSDeploy:如何基于发布配置文件 更新应用设置(Sayed Hashimi 的博客)。 演示如何将 Web 部署参数集成到 Visual Studio 发布配置文件中。
- Web 部署参数化 (IIS.NET 网站)。
- Web 部署操作 参数化(Vishal Joshi 的博客)。
- Web 部署参数化与 Web.config 转换 (Vishal Joshi 的博客)。
- Windows Azure 网站:应用程序字符串和连接字符串的工作原理 (Microsoft Azure 博客)。 如果目标环境是 Windows Azure 网站,并且你想要参数化或参数化
appSettings
,connectionStrings
则替代 Web 部署参数。
确保应用程序在部署期间处于非在线状态
- 使用 Visual Studio ASP.NET Web 部署:部署代码更新。 请参阅“在部署期间使应用程序脱机”部分 。
- 在发布 前使应用程序脱机(IIS.net 网站)。 介绍 Web 部署 3.0 中内置的功能,该功能可自动处理app_offline.htm文件。 此功能不适用于自定义app_offline.htm文件。
- 如何在发布 期间使 Web 应用脱机(Sayed Hashimi 的博客)。 如何自动执行使用自定义app_offline.htm文件的过程。
- 应用脱机和 usechecksum 的 Web 发布更新(Microsoft Web 开发博客)。 用于自动使用app_offline.htm文件的另一个选项。
- Web 部署 3.5 RTW (IIS.net 站点)。 Web 部署 3.5 中用于自定义app_offline.htm文件的新功能。
在 Web 应用程序部署过程中部署数据库或更改数据库
- 在 Visual Studio 中配置数据库部署(MSDN)。 使用 Web 项目部署数据库的选项概述。
- 使用 Visual Studio 的 ASP.NET Web 部署。 12 部分教程系列介绍了使用 dbDacFx 提供程序和Entity Framework Code First 迁移进行数据库部署。
- 如何:在 Visual Studio 中使用一键式发布部署 Web 项目(MSDN)。
- 将成员身份、OAuth 和SQL 数据库的安全 ASP.NET MVC 5 应用部署到 Windows Azure 网站。 一个漫长的教程,用于生成和部署使用单个 SQL Server 数据库进行成员身份和应用程序数据的应用程序。
- 使用 Visual Studio 通过 SQL Server Compact 部署 ASP.NET Web 应用程序。 12 部分教程系列介绍了如何部署 SQL Server Compact 数据库以及如何从 SQL Server Compact 迁移到完整版本的 SQL Server。
另请参阅本页前面通过创建和安装 Web 部署包和部署 Web 应用程序(CI)过程来部署 Web 应用程序。
独立于 Web 应用程序部署部署数据库
- SQL Server Data Tools (MSDN)。
- 在 SQL Server 数据库项目中 包括数据(SQL Server Data Tools 团队博客)。 部署数据库时如何部署架构和数据。
- 如何将数据库部署到 Windows Azure (Microsoft Azure 站点)
- 将数据库迁移到 Windows Azure SQL 数据库(前 SQL Azure)(MSDN)。
- 使用 SSDT 将数据库迁移到 SQL Azure(SQL Server Data Tools 团队博客)。
- 将以数据为中心的应用程序迁移到 Windows Azure (MSDN)。
- 将 SQL Server 数据库迁移到 Windows Azure SQL 数据库(MSDN)。
部署使用 ASP.NET 应用程序服务的 Web 应用程序,例如成员身份和分析
- 将成员身份、OAuth 和SQL 数据库的安全 ASP.NET MVC 5 应用部署到 Windows Azure 网站。 一个漫长的教程,用于生成和部署使用单个 SQL Server 数据库进行成员身份和应用程序数据的应用程序。
- ASP.NET 标识。 ASP.NET 标识的资源。
- 使用 Visual Studio 的 ASP.NET Web 部署。 12 部分教程系列介绍了如何部署 ASP.NET 成员身份数据库。
- 配置使用应用程序服务的网站。 对于网站项目,但也与 Web 应用程序项目相关。
- 生产网站上的用户和角色。 对于网站项目,但也与 Web 应用程序项目相关。
预编译部署
- ASP.NET Web 应用程序项目预编译概述 (MSDN)。
- 包/发布 Web 选项卡,项目属性 (MSDN)。
- “高级预编译设置”对话框 (MSDN)。
部署 Intranet Web 应用程序
- 在 Visual Studio 2013 (Vittorio Bertocci 的博客)中使用具有 ASP.NET 的本地组织身份验证选项(ADFS)。
- 如何使用 ASP.NET MVC (MSDN)创建 Intranet 站点。 针对 Visual Studio 2010 编写的旧演练不会反映 Visual Studio 2013 中引入的 Intranet 项目模板的重大更改。
自动执行未自动执行的常见部署任务
- 使用 Visual Studio ASP.NET Web 部署:部署额外文件。
- 在 Web 发布 上设置文件夹权限(Sayed Hashimi 的博客)。
- 如何扩展目标文件以包含 Web 项目包 的注册表设置(Web 开发工具博客)。
- 扩展 XML (Web.config) 转换 (Sayed Hashimi 的博客)。 演示如何创建自定义 XDT 转换。
- Web 部署工具 (MSDeploy) 自定义提供程序采用 1 (Sayed Hashimi 的博客)。 演示如何创建 Web 部署自定义提供程序。
- 如何打包和部署 COM 组件 (Web 开发工具博客)。
- 如何打包 .NET 程序集 (Web 开发工具博客)。 如何将程序集部署到 GAC。
配置 Web 服务器,以便开发人员可以使用 Web 部署将 Web 应用程序部署到它们
为托管提供程序配置服务器
- Microsoft ASP.NET 4 托管部署指南 (Microsoft下载中心)。
- 生成配置文件 XML 文件 (IIS.net 站点)。
排查部署问题
- 对 Visual Studio 中的 Windows Azure 网站进行故障排除(Microsoft Azure 站点)。
- 使用 Visual Studio ASP.NET Web 部署:故障排除。
- 排查 Web 部署的常见问题。
- Web 部署错误代码 (IIS.net 站点)。
- Visual Studio 和 ASP.NET (MSDN)的 Web 部署常见问题解答。
- IIS 与 ASP.NET 开发服务器之间的核心差异。
- 开发和生产之间的常见配置差异。
获取有关特定部署问题的帮助
- [ASP.NET 配置和部署论坛](https://forums.asp.net/26.aspx/1?Configuration 和部署)。
- StackOverflow.com。
其他资源
本部分提供了指向其他资源的链接,这些资源可用于详细了解如何使用 Visual Studio 和 IIS 部署工具。
以下博客经常包含有关 Visual Studio Web 部署的信息:
- Microsoft博客的 Web 开发工具。
- 说哈西米的博客。
以下资源提供了有关 Web 部署的文档,即 Visual Studio 用于执行 Web 应用程序项目部署任务的 IIS 框架。 可以在 IIS.net 网站上的 Web 部署工具论坛中询问有关 Web 部署的问题。
- Web 部署简介。
- 安装和配置 Web 部署。
- 用于自动执行 Web 部署设置的 PowerShell 脚本。
- Web 部署工具。 TechNet 网站上的 Web 部署文档的顶级目录节点。 包括有用的参考信息,但大多数 TechNet 页面多年来尚未更新。
- Microsoft.Web.Deployment 命名空间。 自版本 1.0 起,API 文档尚未更新。
- Microsoft Web 部署团队博客。
- IIS.net 网站中的“发布”选项卡。