在azure webroles上修补网站

时间:2016-07-18 22:46:47

标签: azure azure-web-roles

有时在我们的网站上部署在Azure网络角色上,问题与javascript和HTML中的小错误有关。我们转到webroles的所有实例并在机器上修复这些JS和HTML文件。

但我正在研究一些自动执行此操作的方法,从一些中心位置下载文件到补丁并替换所有azure web角色中的文件。我在网站上使用ASP .net MVC。

可以使用程序包中的补丁重新部署网站,但我们不想等待很长的部署时间。如果可以通过一些内部WEB API取代所有Azure角色上的内容,请通知我。

3 个答案:

答案 0 :(得分:1)

部署新的webrole有两种方法:

  • 重新部署
  • inplace update

第一个是最慢的,意味着新的VM被启动。

使用就地升级(https://azure.microsoft.com/en-us/documentation/articles/cloud-services-update-azure-service/) 新的应用程序包安装在一个新的驱动器上(通常是F:而不是E :),IIS网站被交换到新驱动器。

您可以通过转到旧门户并上传新的应用程序包来尝试此操作。只需几秒钟/分钟即可完成更新。

答案 1 :(得分:0)

在stackoverflow上挖掘了很多东西之后,我制作了自己的解决方案,即在网站启动时创建主题并在代码中订阅主题。当我想修补Web应用程序然后我向Topic发送消息以开始修补,然后Web角色中的每台机器都将从主题获得通知并开始修补自己。修补本身非常简单,这将是一个Web存储和从那里下载文件并替换approot中的文件。 当天蓝色维护发生时,这个修补可能会消失,所以对于这种情况,我也在网站启动时开始修补工作。

答案 2 :(得分:-2)

云服务部署包往往很慢,因为它们基本上是如何构建和配置部署的配方。部署不仅将配方放在Azure中(因此可以在需要移动机器时再次使用),而且还遵循配方为您的Cloud Service构建VM(WebRoles / WorkerRoles是平台即服务所以您不必像使用虚拟机Azure产品那样担心操作系统和基础架构级别,但它们仍然在物理硬件上的VM中运行。

您希望做的是更新配方(您的云服务包)以及部署完成后的部署......在云服务中没有简单的方法可以做到这一点。

但是,是的,你可以创建一个启动脚本,可以从blob存储或其他一些集中位置提取站点文件 - 这可以与应用程序(例如fiddler)查找更新的方式进行比较,然后知道如何更新和替换自己。对于这种功能,您可能需要以提升用户身份运行代码 - 启动脚本的一个好处是它们可以作为提升用户运行 - 因此他们可以做任何您在机器上需要完成的任务(但需要您重启实例让它们运行)。基本上,您需要编写一些代码,以允许您的站点自行更新。此链接可能有所帮助:https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks/

如果您有能力迁移到WebApps和WebJobs,我建议调查一下,因为该计算产品可以很好地解决您的问题。 以下是WebApp和云服务之间差异的有用答案:What is the difference between an Azure Web Site and an Azure Web Role