我正在启动一个将在Azure上托管的ASP.net Web项目,但我不确定是将该项目开发为常规ASP.net应用程序并将其部署为Azure上的Web站点,还是将其开发为具有Web角色的云应用程序。
项目的性质是网站(简单的数据库后端),但问题是部署问题。我们的目标是构建应用程序的版本,然后部署到登台和生产环境,这意味着构建的输出应该产生一个包(类似于msdn中描述的那样)。
有关如何create a service package发布云服务的大量信息,但有关将网站发布到azure的文章遵循'Web部署'方案,其中部署是通过Visual Studio完成的(Azure的订阅文件)等)。
有没有办法将网站部署为azure作为包?或者是Web部署所需的Visual Studio工具?如果是这样,那么将项目组合为云服务,只有Web角色才是正确的选择?
答案 0 :(得分:4)
我在这个问题上发表了一条评论,关于Cloud Service&网站,但要回答有关包装的问题:云服务&网站采用两种不同的部署方法,并没有真正“适用于两种”包装:
startup scripts
;你无法安装注册表更新,COM对象,msi的...... OnStart()
进行配置。每个角色的定义合并为一个部署包。要更新一个或多个角色,您需要重新部署该程序包。网站没有工具先决条件,而云服务需要Visual Studio或Eclipse来帮助您管理部署包。您也可以使用PowerShell和Visual Studio命令行工具来构建程序包,正如@Ben Robinson在上面的评论中提到的那样。您还可以使用PowerShell创建和管理网站。云服务和网站都提供登台和生产插槽。
您无法将部署包推送到网站。
答案 1 :(得分:1)
David的答案在覆盖Cloud Services选项方面做得很好。但是,我相信Azure网站选项非常适合您的需求。您不必使用Visual Studio进行部署。相反,您可以在Visual Studio中创建一个发布配置文件,该配置文件创建一个Web部署包,它只是一个ZIP文件,以后可以使用命令行工具发布,不需要Visual Studio。它还会生成一个.deploy.cmd文件,您可以运行该文件以部署到远程服务器,以及一个SetParameters.xml文件,其中包含您可以为目标部署环境修改的连接字符串等参数。 .deploy.cmd文件调用执行实际部署的msdeploy.exe。
有关Web Deploy命令行部署的更多详细信息,请参阅this。在Sayed Ibrahim Hashimi's blog上还有大量有关MSDeploy及其软件包系统的信息。
答案 2 :(得分:1)
如果您希望能够直接在Web应用程序中更改文件,则最好使用Azure Web App,因为您可以通过FTP访问这些文件。
但是,Azure Cloud Service不提供FTP访问,至少不允许您使用FTP客户端上传文件。云服务是您不希望因托管Web应用程序的大部分细节而烦恼的地方。虽然Azure Web App做了很多相同的事情,但它也允许您在部署后拥有FTP访问权限并直接访问文件。