如何禁用"生产中的测试"在Azure中

时间:2018-02-15 20:48:40

标签: azure-web-sites

Azure应用服务具有生产测试设置,允许您将流量路由到不同的插槽,Scott Hanselman talks about it here

但是 - 当我完成了,并且我想阻止不同插槽之间的路由流量时,如何将其关闭并完全禁用它,以便所有流量都返回到我的生产槽?使用天蓝色门户网站,我可以将所有100%的流量路由回到我的" production"插槽,但因为它基于cookie(有一个名为x-ms-routing-name的cookie设置用户所关注的当前插槽),它只适用于新流量 - 已经路由到另一个插槽的用户停留路过它。

是否可以关闭"这个功能完全可以让所有流量回到我的主要生产位置?

2 个答案:

答案 0 :(得分:2)

  

有一个名为x-ms-routing-name的cookie,用于设置用户所关注的当前插槽

x-ms-routing-name 可以让您将请求路由到特定的插槽。

要使用它将用户重新路由到特定的插槽,您必须确保该插槽已添加到“流量路由”列表中。

您可以使用网页中的以下链接,让用户选择退出您的测试版应用:

<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>

字符串 x-ms-routing-name = self指定生产槽

一旦客户端浏览器访问该链接,它不仅会被重定向到生产槽,而且每个后续请求都将包含x-ms-routing-name = self cookie,将会话固定到生产槽。

有关详细信息,请参阅此article

答案 1 :(得分:0)

如果您配置了AppService的“路由规则”参数,则将获得x-ms-routing-name标头。

作为快捷方式,您可以删除在Azure门户中的数字0。

No header <-这将完全删除标题

With header <-这将启用标头,但从不路由到另一个插槽。

您也可以null整个routingRules部分,例如通过https://resources.azure.com

      "type": "Microsoft.Web/sites/config",
      "location": "West Europe",
      "properties": {
        "routingRules": [
          {
            "actionHostName": "mysite-myslot.azurewebsites.net",
            "reroutePercentage": 4,
            "changeStep": null,
            "changeIntervalInMinutes": null,
            "minReroutePercentage": null,
            "maxReroutePercentage": null,
            "changeDecisionCallbackUrl": null,
            "name": "myslot"
          }
        ],

如果完全禁用该设置,则必须等待大约一分钟。然后,即使客户端仍然将其指向您的暂存槽,AppService也会开始忽略x-ms-routing-name标头。