4

我正在启动一个将在 Azure 上托管的 ASP.net Web 项目,但我不确定是将项目开发为常规 ASP.net 应用程序并将其部署为 Azure 上的网站,还是将其开发为具有 Web 角色的云应用程序。

该项目的性质是一个网站(简单的数据库后端),但问题是部署之一。我们的目标是构建应用程序的版本,然后部署到登台和生产环境,这意味着构建的输出应该产生单个包(类似于msdn中描述的内容)。

有很多关于如何创建服务包来发布云服务的信息,但是关于将网站发布到 azure 的文章遵循“Web 部署”方案,其中通过 Visual Studio 完成部署(来自 Azure 的订阅文件等)。

有没有办法将网站部署为 azure 作为一个包?还是 Web 部署需要 Visual Studio 之类的工具?如果是这样,那么将项目组合为仅具有 Web 角色的云服务是正确的选择吗?

4

3 回答 3

4

我在问题下发表了一条评论,关于云服务和网站之间的差异,但要回答您关于打包的问题:云服务和网站采用两种不同的部署方法,并且没有真正“适用于两者”的打包:

  • 网站旨在接受来自源代码存储库的代码部署。这个想法是你有你的代码的标签版本,并将其从 TFS、git、Bitbucket 等中推送出来。你也可以使用 ftp 推送你的代码,或者将它放到一个保管箱文件夹中。因为网站在 IIS 中运行,并且由于您无法控制运行网站的虚拟机场,所以您无法startup scripts像使用云服务那样进行推送;您无法安装注册表更新、COM 对象、msi 的...
  • 云服务是围绕无状态 VM 模型设计的。每次横向扩展(添加实例)时,都会启动基线 Windows Server VM,并将部署包的内容复制到新的 VM 实例并执行。这包括启动脚本、安装程序等。由于您对每个 VM 具有管理员级别的访问权限,因此您可以根据需要从启动脚本 / 对其进行配置OnStart()。每个角色的定义都合并到一个部署包中。要更新一个或多个角色,您需要重新部署包。

网站没有工具先决条件,而云服务需要 Visual Studio 或 Eclipse 来帮助您管理部署包。您还可以使用 PowerShell 和 Visual Studio 命令行工具来构建包,正如上面评论中提到的@Ben Robinson。您还可以使用 PowerShell 创建和管理网站。云服务和网站都提供登台生产槽。

您不能将部署包推送到网站。

于 2013-10-15T11:21:36.737 回答
1

大卫的回答很好地涵盖了云服务选项。但是,我相信 Azure 网站选项非常适合您的需求。您不必使用 Visual Studio 进行部署。相反,您可以在 Visual Studio 中创建一个发布配置文件,该配置文件创建一个 Web 部署包,它只是一个 ZIP 文件,可以在以后使用命令行工具发布,不需要 Visual Studio。它还会生成一个 .deploy.cmd 文件,您可以运行该文件以部署到远程服务器,以及一个 SetParameters.xml 文件,其中包含您可以针对目标部署环境修改的连接字符串等参数。.deploy.cmd 文件调用执行实际部署的 msdeploy.exe。

有关Web Deploy 命令行部署的更多详细信息,请参阅此内容。在Sayed Ibrahim Hashimi 的博客上还有大量关于 MSDeploy 及其包系统的信息。

于 2015-03-02T19:18:04.487 回答
1

如果您希望能够直接在 Web 应用程序中更改文件,那么最好使用 Azure Web App,因为您可以通过 FTP 访问这些文件。

但是,Azure 云服务不提供 FTP 访问,至少不是一个有用的允许您使用 FTP 客户端上传文件的服务。云服务是您不希望被托管 Web 应用程序的许多细节所困扰的地方。虽然 Azure Web 应用程序做了很多相同的事情,但它还允许您拥有 FTP 访问权限并直接访问部署后的文件。

于 2016-02-24T15:46:17.153 回答