问题标签 [azure-deployment-slots]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
549 浏览

node.js - Azure Web App 在交换期间丢弃请求

我喜欢在 Azure 中交换插槽的想法,但它似乎无法正常工作。

我有一个将文件上传到服务器的客户端应用程序,每个应用程序都是一个单独的请求。当我尝试服务器交换时,它会挂在其中一个文件上传上,并且该请求将失败。同样,如果我刷新生产槽的网页,它将挂起。这只会发生 30 秒,然后一切都很好,但这足以中断请求。

我在某处读到粘性插槽设置会导致这种情况,所以我禁用了这些设置,但它仍然会发生。

有任何想法吗?这是一个 nodeJs 网络应用程序。

谢谢你,山姆

0 投票
3 回答
901 浏览

asp.net-mvc - Azure 部署槽交换重定向到同一域

我的情况如下。

我有我的 website.azurewebsites.net 主站点,它重定向到https://website.dk(我购买了这个域)并创建了另一个名为 website-dev.azurewebsites.net 的部署槽。但是,当我想访问“开发”时,它仍然被重定向到https://website.dk,其中包含来自 website.azurewebsites.net 的更改。

如何访问 website-dev.azurewebsites.net 而不会被重定向到主要网站?

编辑:也许是 web.config 文件中的重定向,但我已经注释掉了重定向部分并发布了?

0 投票
1 回答
271 浏览

azure-web-app-service - Azure Powershell:网站插槽交换无法正常工作

我发现通过 powershell 交换 azure 插槽似乎是不现实的(我想它给出了一个我看不到的错误响应,或者默默地失败但声称成功)。如脚本所示,正在交换的插槽位于两个非生产插槽之间。大约 10% 的时间它似乎成功了。我不知道它为什么成功或失败,希望有人可以阐明我在这里做错了什么。

我有一个在 Teamcity 上的构建作业上运行的脚本,脚本如下:

我得到的唯一日志是:

0 投票
1 回答
280 浏览

azure-web-app-service - Azure WebApp 部署槽:交换前作业

我们有两个应用服务:

  • RESTService(Azure 应用服务 Web 应用 -> ASP.NET)

  • WebApplication(Azure App Service Web App -> Angular.JS SPA)

RESTService 有一个 web.config,WebApplication 有一个 appconfig.json 作为它们的配置文件。

在每个应用服务上,我们都有一个暂存槽,我们希望在其中进行一些测试(自动和手动)。出于这个原因,我们需要为 web.config 和 appconfig.json 文件设置粘滞槽。使用来自门户的粘滞槽设置,我认为这是不可能的(我认为这些设置仅适用于 web.config 中的 appsettings-configurations)。

最好的方法是什么?

我想到了类似的事情: - 在我的发布配置中,我将 web 应用程序部署到暂存槽,然后在 web.config 和 appjson.config 中进行修改(调整暂存环境的设置)任务(power-shell 或类似的东西)...然后我可以进行自动测试,如果它们成功,我会撤消配置文件中的更改并切换到生产环境。但是,如果我想做一些手动测试并在门户中进行交换呢?比我必须自己撤消更改...

是否有类似交换前工作的东西,可以在交换之前触发?

谢谢你的帮助,

彼得

0 投票
2 回答
328 浏览

azure - 为 azure 应用的所有插槽设置监控警报

标题说明了一切。

我有一些 azure 应用程序,每个应用程序有 3 到 4 个部署槽,我想通过制定某种全局警报规则而不是为每个槽和应用程序定义规则来为所有这些应用程序设置服务器错误的监视警报。可能吗?

0 投票
4 回答
8248 浏览

visual-studio-2015 - ARM模板中的部署槽特定应用程序设置?

我正在尝试进入该 Visual Studio 资源组模板。到目前为止它看起来不错,我已经为 Web 应用程序添加了一些应用程序设置,但我的问题是,我怎样才能使它们成为特定的部署槽?模板或参数文件的 json 中有什么东西吗?

0 投票
1 回答
253 浏览

azure - VS 2015 Web Deploy to Azure Web App Staging 部署槽覆盖 PROD 槽

我在将 Visual Studio Community 2015 Web 部署到 Azure Web 应用程序时遇到了一个奇怪的问题。我有一个生产槽和一个暂存槽。当我执行 Web 部署到暂存时,它也会覆盖生产槽中的 web.config!

  1. 根据我的暂存 web.config 转换正确转换了 web.config,我可以通过在本地查看它来验证这一点obj\Staging\TransformWebConfig\transformed\web.config
  2. VS 中构建输出窗口中的日志看起来都正确Updating file (xxxx__staging\Web.config)

然而,当我在 PROD 插槽中运行应用程序时,它指向在 Staging web.config 中指定的数据库。当我通过 FTP 查看 PROD 中的 web.config 时,我看到所有 STAGE web.config 转换都在那里。因此,据我所知,STAGE Web 部署正在更新 Prod 和 Stage 文件……至少是 web.config 文件。

反之亦然。在对 PROD 进行 Web 部署时,它也会覆盖 STAGE 中的 web.config。

是否有一些同步设置告诉 Azure 同步这些部署槽或其他一些合乎逻辑的解释?

0 投票
1 回答
167 浏览

css - Azure 部署槽设置和问题

我刚刚偶然发现了这篇关于部署槽的博客文章。一年多来,我一直想知道如何在将新版本的代码投入生产时最大限度地减少停机时间……我从来不知道/意识到可以使用部署槽做什么。

所以,我开始设置我的部署槽,称为“staging”。

创建插槽后,我去现场查看是否一切正常。当页面加载时,它说该站点已创建,但尚未部署任何内容。我意识到我还需要将我的持续部署设置到插槽。

然后我通过 BitBucket 将此暂存槽绑定到我的主存储库。现在代码已部署并加载站点。

第一个问题:现在我从我的主分支加载了常规的生产站点,以及暂存版本。是否应该从常规生产版本中删除持续部署?例如,如果/当我合并到主分支时,它是否会构建并部署到两个站点,或者它是否足够聪明地识别部署槽,并且只部署到那个,然后等待手动交换或配置AutoSwap 将代码推送到生产环境?

第二个问题:在暂存槽上,我的 site.min.css 文件是空的,因此我的任何特定于我的站点的 css 更改都不会加载。这使它看起来很可怕。为什么我的 css 没有加载到部署槽?

产品:http ://www.wrestlestat.com 分期:http ://wrestlestat-staging.azurewebsites.net

0 投票
1 回答
1956 浏览

asp.net-mvc - Azure ASP.NET 预热和部署槽

我正在使用 ASP.NET MVC 5 和 Azure Premium 应用服务,并将 AlwaysRunning 选项设置为“on”。

我为 Web 应用程序创建了一个部署槽,部署了我的新版本,打开了槽 URL,一切都又快又稳定。我切换到生产环境,交换操作完成后,Web 应用程序很慢,就像我手动部署到 PROD 一样。我不得不等待超过一分钟才能让我的应用程序再次运行。根据我读到的内容,我认为该应用程序会在交换后预热,但没有成功。

为什么换了之后这么慢?甚至没有像身份验证表单一样访问数据库的页面。

更新:切换到 V2 计划(SSD 存储)后,应用程序将在 2 分钟内重新启动 :)

0 投票
1 回答
320 浏览

node.js - 在 Azure 作为应用服务运行的 node.js 应用的暂存槽给了我 EADDRINUSE

我有一个在 Azure 中作为应用服务运行的 node.js 应用。它通过 mongoose + tunnel-ssh 连接到 MongoDB。我在不同的地理位置部署了多个应用服务,一切正常。

当我创建一个暂存槽时,我从 ssh 隧道为暂存实例收到以下错误(注意:prod.slot 仍然可以正常工作):

对我来说,staging slot 似乎在同一个 VM 上运行,并尝试使用与生产相同的端口,这就是它无法建立与 DB 的连接的原因。这意味着我可能无法扩展应用程序,因为另一个实例也会有同样的问题。

对于暂存和其他实例(缩放时),我该如何解决这个问题?

暂存可以使用不同的端口,但如何动态设置它以便它也适用于缩放实例?