首页 文章

代码部署到Azure多实例Web App

提问于
浏览
0

基本问题Azure如何在Web部署期间将ASP.NET网站的文件复制到站点的所有实例?

我们可以部署只有zip站点的网站和一个基于PowerShell脚本的Azure Web作业(触发一个),它将执行以下操作:

  • 解压缩包

  • 在Azure服务器上复制到/ site / wwwroot /

如果可能,通过这种方式,我们可以获得优势:

  • 我们在部署期间向Azure网站发送较少的字节(网站源可以很好地压缩),因此即使是大型网站,部署过程也需要几秒钟

  • 实际部署工作由触发的Web作业完成,这使部署过程异步 . 我们可以从同一个构建机器运行许多部署,然后只监视进程

我们已成功应用此方法来部署Azure Web作业 . 我们有10个具有几乎相同依赖关系的Web作业,并且部署相同的东西10次(50MB * 10)需要太多时间 . 但在这种情况下,承载此Web作业的Azure Web App是一个实例 .

那么多实例Web应用程序的情况会有所不同吗?

2 回答

  • 1

    在Web部署期间,Azure如何将ASP.NET网站的文件复制到站点的所有实例?

    Azure Web应用程序内容存储在Azure存储中,并以持久的方式作为内容共享浮出水面 . 对于每个实例,沙箱在内核模式下实现动态符号链接,该链接将 d:\home 映射到Web应用程序内容主目录 . 无论部署Web应用程序的实例数是多少,每个实例都可以使用'd:\home'访问其主目录 . 因此,默认情况下,Azure Web App不会将网站的文件复制到每个VM实例 .

    您还可以通过在应用服务的应用设置中将“WEBSITE_LOCAL_CACHE_OPTION”属性设置为“始终”来启用本地缓存 . 之后,Azure Web App会将共享内容的/ site和/ siteextensions文件夹复制到Web应用程序启动时的每个本地VM实例 . 'd:\ home'路径将指向本地缓存 . 如果重新启动Web App,Azure Web App会将共享内容重新复制到每个本地VM实例 .

    那么多实例网络应用的情况会有所不同吗?

    如果您尚未打开本地缓存,则多实例Web应用程序的情况将相同 . 如果您确实打开了本地缓存,则需要重新启动Web App,以便在部署任何内容后将更改应用于每个实例 .

  • 1

    应用服务正在使用网络共享来映射源文件夹 . 因此,内容的更改将应用于所有实例 . 使用LocalCache时有例外 - 在这种情况下,需要显式Web应用程序重新启动才能使更改生效

相关问题