Configurar ambientes de teste no Serviço de Aplicações do Azure

Ao implantar seu aplicativo Web, aplicativo Web no Linux, back-end móvel ou aplicativo de API no Serviço de Aplicativo do Azure, você pode usar um slot de implantação separado em vez do slot de produção padrão quando estiver executando na camada de plano do Serviço de Aplicativo Padrão, Premium ou Isolado . Os slots de implantação são aplicativos ativos com seus próprios nomes de host. O conteúdos das aplicações e os elementos de configuração podem ser trocados entre dois blocos de implementação, incluindo o bloco de produção.

Implantar seu aplicativo em um slot que não seja de produção tem os seguintes benefícios:

  • Você pode validar as alterações do aplicativo em um slot de implantação de preparo antes de trocá-lo pelo slot de produção.
  • A implementação de uma aplicação num bloco primeiro e trocá-la para produção garante que todas as instâncias do bloco são preparadas antes de serem trocadas para produção. Isto elimina o tempo de inatividade quando implementa a aplicação. O redirecionamento de tráfego é perfeito e nenhuma solicitação é descartada devido a operações de troca. Você pode automatizar todo esse fluxo de trabalho configurando a troca automática quando a validação pré-troca não for necessária.
  • Após uma troca, o slot com o aplicativo previamente preparado agora tem o aplicativo de produção anterior. Se as alterações trocadas para o slot de produção não forem as esperadas, você pode executar a mesma troca imediatamente para recuperar seu "último site em boas condições".

Cada camada de plano do Serviço de Aplicativo oferece suporte a um número diferente de slots de implantação. Não há cobrança extra pelo uso de slots de implantação. Para saber o número de slots suportados pela camada do seu aplicativo, consulte Limites do Serviço de Aplicativo.

Para dimensionar seu aplicativo para uma camada diferente, verifique se a camada de destino suporta o número de slots que seu aplicativo já usa. Por exemplo, se seu aplicativo tiver mais de cinco slots, você não poderá reduzi-lo para a camada Padrão, porque a camada Standard suporta apenas cinco slots de implantação.

Este vídeo mostra como configurar ambientes de preparo no Serviço de Aplicativo do Azure.

As etapas no vídeo também são descritas nas seções a seguir.

Pré-requisitos

Para obter informações sobre as permissões necessárias para executar a operação de slot desejada, consulte Operações do provedor de recursos (procurar slot, por exemplo).

Adicionar um bloco

O aplicativo deve estar sendo executado na camada Standard, Premium ou Isolada para que você habilite vários slots de implantação.

  1. No portal do Azure, navegue até a página de gerenciamento do seu aplicativo.

  2. No painel esquerdo, selecione Slots>de implantação Adicionar slot.

    Nota

    Se o aplicativo ainda não estiver na camada Padrão, Premium ou Isolado , selecione Atualizar e vá para a guia Escala do seu aplicativo antes de continuar.

  3. Na caixa de diálogo Adicionar um slot, dê um nome ao slot e selecione se deseja clonar uma configuração de aplicativo de outro slot de implantação. Selecione Adicionar para continuar.

    A screenshot that shows how to configure a new deployment slot called 'staging' in the portal.

    Você pode clonar uma configuração de qualquer slot existente. As configurações que podem ser clonadas incluem configurações de aplicativos, cadeias de conexão, versões de estrutura de idioma, soquetes da Web, versão HTTP e bitness da plataforma.

    Nota

    Atualmente, um ponto de extremidade privado não é clonado entre slots.

  4. Depois que o slot for adicionado, selecione Fechar para fechar a caixa de diálogo. O novo slot agora é mostrado na página Slots de implantação. Por padrão, % de tráfego é definido como 0 para o novo slot, com todo o tráfego do cliente roteado para o slot de produção.

  5. Selecione o novo slot de implantação para abrir a página de recursos desse slot.

    A screenshot that shows how to open deployment slot's management page in the portal.

    O slot de preparo tem uma página de gerenciamento como qualquer outro aplicativo do Serviço de Aplicativo. Você pode alterar a configuração do slot. Para lembrá-lo de que você está exibindo o slot de implantação, o nome do aplicativo é mostrado como <app-name/<slot-name>>, e o tipo de aplicativo é Serviço de Aplicativo (Slot). Você também pode ver o slot como um aplicativo separado em seu grupo de recursos, com as mesmas designações.

  6. Selecione o URL do aplicativo na página de recursos do slot. O slot de implantação tem seu próprio nome de host e também é um aplicativo ativo. Para limitar o acesso público ao slot de implantação, consulte Restrições de IP do Serviço de Aplicativo do Azure.

O novo slot de implantação não tem conteúdo, mesmo se você clonar as configurações de um slot diferente. Por exemplo, você pode publicar neste slot com o Git. Você pode implantar no slot a partir de uma ramificação de repositório diferente ou de um repositório diferente. Obter perfil de publicação do Serviço de Aplicativo do Azure pode fornecer as informações necessárias para implantar no slot. O perfil pode ser importado pelo Visual Studio para implantar conteúdo no slot.

O URL do slot tem o formato http://sitename-slotname.azurewebsites.net. Para manter o comprimento da URL dentro dos limites de DNS necessários, o nome do site será truncado em 40 caracteres e o nome do site combinado e o nome do slot devem ter menos de 59 caracteres.

O que acontece durante uma troca

Etapas da operação de permuta

Quando você troca dois slots (geralmente de um slot de preparo como origem para o slot de produção como destino), o Serviço de Aplicativo faz o seguinte para garantir que o slot de destino não sofra tempo de inatividade:

  1. Aplique as seguintes configurações do slot de destino (por exemplo, o slot de produção) a todas as instâncias do slot de origem:

    Qualquer um desses casos aciona todas as instâncias no slot de origem para reiniciar. Durante a troca com visualização, isso marca o fim da primeira fase. A operação de troca é pausada e você pode validar se o slot de origem funciona corretamente com as configurações do slot de destino.

  2. Aguarde até que cada instância no slot de origem conclua sua reinicialização. Se alguma instância falhar ao reiniciar, a operação de permuta reverte todas as alterações para o slot de origem e interrompe a operação.

  3. Se o cache local estiver habilitado, acione a inicialização do cache local fazendo uma solicitação HTTP para a raiz do aplicativo ("/") em cada instância do slot de origem. Aguarde até que cada instância retorne qualquer resposta HTTP. A inicialização do cache local causa outra reinicialização em cada instância.

  4. Se a troca automática estiver habilitada com aquecimento personalizado, acione a Iniciação do Aplicativo fazendo uma solicitação HTTP para a raiz do aplicativo ("/") em cada instância do slot de origem.

    Se applicationInitialization não for especificado, acione uma solicitação HTTP para a raiz do aplicativo do slot de origem em cada instância.

    Se uma instância retornar qualquer resposta HTTP, ela será considerada aquecida.

  5. Se todas as instâncias no slot de origem forem aquecidas com êxito, troque os dois slots alternando as regras de roteamento para os dois slots. Após essa etapa, o slot de destino (por exemplo, o slot de produção) tem o aplicativo previamente aquecido no slot de origem.

  6. Agora que o slot de origem tem o aplicativo de pré-troca anteriormente no slot de destino, execute a mesma operação aplicando todas as configurações e reiniciando as instâncias.

Em qualquer ponto da operação de troca, todo o trabalho de inicialização dos aplicativos trocados acontece no slot de origem. O slot de destino permanece on-line enquanto o slot de origem está sendo preparado e aquecido, independentemente de onde a troca seja bem-sucedida ou falhe. Para trocar um slot de preparação pelo slot de produção, certifique-se de que o slot de produção seja sempre o slot de destino. Dessa forma, a operação de permuta não afeta seu aplicativo de produção.

Nota

As instâncias em suas instâncias de produção anteriores (aquelas que serão trocadas em preparo após essa operação de troca) serão recicladas rapidamente na última etapa do processo de troca. Caso você tenha alguma operação de longa duração em seu aplicativo, elas serão abandonadas, quando os trabalhadores reciclarem. Isso também se aplica a aplicativos funcionais. Portanto, o código do aplicativo deve ser escrito de forma tolerante a falhas.

Quais configurações são trocadas?

Quando você clona a configuração de outro slot de implantação, a configuração clonada é editável. Alguns elementos de configuração seguem o conteúdo através de uma troca (não específica do slot), enquanto outros elementos de configuração permanecem no mesmo slot após uma troca (específico do slot). As listas a seguir mostram as configurações que mudam quando você troca slots.

Configurações que são trocadas:

  • Configurações gerais, como versão do framework, 32/64-bit, web sockets
  • Configurações do aplicativo (pode ser configurado para manter um slot)
  • Cadeias de conexão (podem ser configuradas para aderir a um slot)
  • Mapeamentos do manipulador
  • Certificados públicos
  • Conteúdo WebJobs
  • Conexões híbridas *
  • Pontos finais de serviço *
  • Rede de Entrega de Conteúdo do Azure *
  • Mapeamentos de caminho

As funcionalidades marcadas com um asterisco (*) estão planeadas para não serem trocadas.

Configurações que não são trocadas:

  • Publicação de pontos de extremidade
  • Nomes de domínio personalizados
  • Certificados não públicos e configurações TLS/SSL
  • Configurações de escala
  • Programadores WebJobs
  • Restrições de IP
  • Sempre Ativo
  • Definições de diagnóstico
  • Partilha de recursos transversais à origem (CORS)
  • Integração da rede virtual
  • Identidades gerenciadas e configurações relacionadas
  • Configurações que terminam com o sufixo _EXTENSION_VERSION
  • Configurações criadas pelo Service Connector

Nota

Para tornar as configurações acima mencionadas trocáveis, adicione a configuração WEBSITE_OVERRIDE_PRESERVE_DEFAULT_STICKY_SLOT_SETTINGS do aplicativo em cada slot do aplicativo e defina seu valor como 0 ou false. Essas configurações podem ser trocadas ou não podem ser trocadas. Você não pode fazer apenas algumas configurações trocáveis e não as outras. As identidades gerenciadas nunca são trocadas e não são afetadas por essa configuração de aplicativo de substituição.

Determinadas configurações de aplicativo que se aplicam a configurações não trocadas também não são trocadas. Por exemplo, como as configurações de diagnóstico não são trocadas, as configurações de aplicativos relacionadas como e DIAGNOSTICS_AZUREBLOBRETENTIONDAYS também não são trocadas, mesmo que não apareçam como WEBSITE_HTTPLOGGING_RETENTION_DAYS configurações de slot.

Para configurar uma configuração de aplicativo ou cadeia de conexão para manter um slot específico (não trocado), vá para a página Configuração desse slot. Adicione ou edite uma configuração e selecione a configuração do slot de implantação. Marcar essa caixa de seleção informa ao Serviço de Aplicativo que a configuração não pode ser trocada.

A screenshot that shows how to configure an app setting as a slot setting in the Azure portal.

Troque dois slots

Você pode trocar slots de implantação na página Slots de implantação do seu aplicativo e na página Visão geral. Para obter detalhes técnicos sobre a troca de slots, consulte O que acontece durante a troca.

Importante

Antes de trocar um aplicativo de um slot de implantação para a produção, verifique se a produção é o slot de destino e se todas as configurações no slot de origem estão configuradas exatamente como você deseja que elas estejam em produção.

Para trocar slots de implantação:

  1. Vá para a página Slots de implantação do seu aplicativo e selecione Trocar.

    A screenshot that shows how to initiate a swap operation in the portal.

    A caixa de diálogo Trocar mostra as configurações nos slots de origem e destino selecionados que serão alterados.

  2. Selecione os slots de origem e destino desejados. Normalmente, o alvo é o slot de produção. Além disso, selecione as guias Alterações de origem e Alterações de destino e verifique se as alterações de configuração são esperadas. Quando terminar, você pode trocar os slots imediatamente selecionando Trocar.

    A screenshot that shows how to configure and complete a swap in the portal.

    Para ver como seu slot de destino seria executado com as novas configurações antes que a troca realmente aconteça, não selecione Trocar, mas siga as instruções em Trocar com visualização.

  3. Quando terminar, feche a caixa de diálogo selecionando Fechar.

Se você tiver algum problema, consulte Solucionar problemas de trocas.

Troca com visualização (troca multifásica)

Antes de trocar para a produção como o slot de destino, valide se o aplicativo é executado com as configurações trocadas. O slot de origem também é aquecido antes da conclusão da troca, o que é desejável para aplicativos de missão crítica.

Quando você executa uma troca com visualização, o Serviço de Aplicativo executa a mesma operação de troca, mas pausa após a primeira etapa. Em seguida, você pode verificar o resultado no slot de preparo antes de concluir a troca.

Se você cancelar a troca, o Serviço de Aplicativo reaplicará os elementos de configuração ao slot de origem.

Nota

A troca com visualização não pode ser usada quando um dos slots tem a autenticação do site habilitada.

Para trocar com a visualização:

  1. Siga as etapas em Trocar slots de implantação, mas selecione Executar troca com visualização.

    A screenshot that shows how to configure a swap with preview in the portal.

    A caixa de diálogo mostra como a configuração no slot de origem muda na fase 1 e como o slot de origem e de destino muda na fase 2.

  2. Quando estiver pronto para iniciar a troca, selecione Iniciar troca.

    Quando a fase 1 terminar, você será notificado na caixa de diálogo. Visualize a troca no slot de origem indo para https://<app_name>-<source-slot-name>.azurewebsites.net.

  3. Quando estiver pronto para concluir a troca pendente, selecione Concluir troca na ação Troca e selecione Concluir troca.

    Para cancelar uma troca pendente, selecione Cancelar troca em vez disso e, em seguida, selecione Cancelar troca na parte inferior.

  4. Quando terminar, feche a caixa de diálogo selecionando Fechar.

Se você tiver algum problema, consulte Solucionar problemas de trocas.

Reverter uma troca

Se ocorrer algum erro no slot de destino (por exemplo, o slot de produção) após uma troca de slot, restaure os slots para seus estados de pré-troca trocando os mesmos dois slots imediatamente.

Configurar a troca automática

Nota

A troca automática não é suportada em aplicativos Web no Linux e no Web App for Containers.

A troca automática simplifica os cenários de DevOps do Azure em que você deseja implantar seu aplicativo continuamente com zero arranques a frio e zero tempo de inatividade para os clientes do aplicativo. Quando a troca automática é habilitada de um slot para a produção, sempre que você envia as alterações de código para esse slot, o Serviço de Aplicativo troca automaticamente o aplicativo para produção depois que ele é aquecido no slot de origem.

Nota

Antes de configurar a troca automática para o slot de produção, considere testar a troca automática em um slot de destino que não seja de produção.

Para configurar a troca automática:

  1. Aceda à página de recursos da sua aplicação. Selecione Configurações gerais de configuração>do slot de origem desejado dos slots<>>>de implantação.

  2. Para Troca automática habilitada, selecione Ativado. Em seguida, selecione o slot de destino desejado para o slot de implantação de troca automática e selecione Salvar na barra de comandos.

    A screenshot that shows how to configure auto swap into the production slot in the portal.

  3. Execute um envio de código para o slot de origem. A troca automática acontece após um curto período de tempo e a atualização é refletida no URL do slot de destino.

Se você tiver algum problema, consulte Solucionar problemas de trocas.

Especificar aquecimento personalizado

Alguns aplicativos podem exigir ações de aquecimento personalizadas antes da troca. O applicationInitialization elemento de configuração em web.config permite especificar ações de inicialização personalizadas. A operação de troca aguarda o término desse aquecimento personalizado antes de trocar com o slot de destino. Aqui está um exemplo de fragmento web.config.

<system.webServer>
    <applicationInitialization>
        <add initializationPage="/" hostName="[app hostname]" />
        <add initializationPage="/Home/About" hostName="[app hostname]" />
    </applicationInitialization>
</system.webServer>

Para obter mais informações sobre como personalizar o applicationInitialization elemento, consulte Falhas de troca de slot de implantação mais comuns e como corrigi-las.

Você também pode personalizar o comportamento de aquecimento com uma ou ambas as seguintes configurações do aplicativo:

  • WEBSITE_SWAP_WARMUP_PING_PATH: O caminho para o ping sobre HTTP para aquecer seu site. Adicione esta configuração de aplicativo especificando um caminho personalizado que começa com uma barra como valor. Um exemplo é /statuscheck. O valor predefinido é /.
  • WEBSITE_SWAP_WARMUP_PING_STATUSES: Códigos de resposta HTTP válidos para a operação de aquecimento. Adicione esta configuração de aplicativo com uma lista separada por vírgulas de códigos HTTP. Um exemplo é 200,202 . Se o código de status retornado não estiver na lista, as operações de aquecimento e troca serão interrompidas. Por padrão, todos os códigos de resposta são válidos.
  • WEBSITE_WARMUP_PATH: Um caminho relativo no site que deve ser pingado sempre que o site for reiniciado (não apenas durante trocas de slots). Exemplos de valores incluem /statuscheck ou o caminho raiz, /.

Nota

O <applicationInitialization> elemento de configuração faz parte de cada inicialização do aplicativo, enquanto as duas configurações do aplicativo de comportamento de aquecimento se aplicam apenas às trocas de slots.

Se você tiver algum problema, consulte Solucionar problemas de trocas.

Monitorar uma troca

Se a operação de swap demorar muito tempo para ser concluída, você poderá obter informações sobre a operação de swap no registro de atividades.

Na página de recursos do seu aplicativo no portal, no painel esquerdo, selecione Registro de atividades.

Uma operação de permuta aparece na consulta de log como Swap Web App Slots. Você pode expandi-lo e selecionar uma das suboperações ou erros para ver os detalhes.

Encaminhe o tráfego de produção automaticamente

Por padrão, todas as solicitações do cliente para a URL de produção do aplicativo (http://<app_name>.azurewebsites.net) são roteadas para o slot de produção. Você pode rotear uma parte do tráfego para outro slot. Esse recurso é útil se você precisar de comentários do usuário para uma nova atualização, mas não estiver pronto para lançá-la para produção.

Para rotear o tráfego de produção automaticamente:

  1. Vá para a página de recursos do seu aplicativo e selecione Slots de implantação.

  2. Na coluna % de tráfego do slot para o qual você deseja rotear, especifique uma porcentagem (entre 0 e 100) para representar a quantidade de tráfego total que você deseja rotear. Selecione Guardar.

    A screenshot that shows how to route a percentage of request traffic to a deployment slot, in the portal.

Depois que a configuração é salva, a porcentagem especificada de clientes é roteada aleatoriamente para o slot de não-produção.

Depois que um cliente é automaticamente roteado para um slot específico, ele é "fixado" nesse slot por uma hora ou até que os cookies sejam excluídos. No navegador do cliente, você pode ver a qual slot sua sessão está fixada observando o x-ms-routing-name cookie em seus cabeçalhos HTTP. Uma solicitação que é roteada para o slot de "preparação" tem o cookie x-ms-routing-name=staging. Uma solicitação que é roteada para o slot de produção tem o cookie x-ms-routing-name=self.

Encaminhar o tráfego de produção manualmente

Além do roteamento automático de tráfego, o Serviço de Aplicativo pode rotear solicitações para um slot específico. Isso é útil quando você quer que seus usuários possam aceitar ou desativar seu aplicativo beta. Para rotear o tráfego de produção manualmente, use o x-ms-routing-name parâmetro query.

Para permitir que os usuários desativem seu aplicativo beta, por exemplo, você pode colocar este link em sua página da Web:

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

A cadeia de caracteres x-ms-routing-name=self especifica o slot de produção. Depois que o navegador do cliente acessa o link, ele é redirecionado para o slot de produção. Cada solicitação subsequente tem o x-ms-routing-name=self cookie que fixa a sessão no slot de produção.

Para permitir que os usuários aceitem seu aplicativo beta, defina o mesmo parâmetro de consulta para o nome do slot de não produção. Eis um exemplo:

<webappname>.azurewebsites.net/?x-ms-routing-name=staging

Por padrão, os novos slots recebem uma regra de roteamento de , mostrada 0%em cinza. Quando você define explicitamente esse valor como 0% (mostrado em texto preto), os usuários podem acessar o slot de preparo manualmente usando o x-ms-routing-name parâmetro query. Mas eles não serão roteados para o slot automaticamente porque a porcentagem de roteamento está definida como 0. Este é um cenário avançado onde você pode "esconder" seu slot de preparação do público, permitindo que equipes internas testem alterações no slot.

Excluir um slot

Pesquise e selecione seu aplicativo. Selecione Slot de slots><de implantação para excluir>>Visão geral. O tipo de aplicativo é mostrado como Serviço de Aplicativo (Slot) para lembrá-lo de que você está visualizando um slot de implantação. Antes de excluir um slot, certifique-se de parar o slot e definir o tráfego no slot para zero. Selecione Excluir na barra de comandos.

A screenshot that shows how to delete a deployment slot in the portal.

Automatize com modelos do Resource Manager

Os modelos do Azure Resource Manager são arquivos JSON declarativos usados para automatizar a implantação e a configuração dos recursos do Azure. Para trocar slots usando modelos do Gerenciador de Recursos, defina duas propriedades nos recursos Microsoft.Web/sites/slots e Microsoft.Web/sites :

  • buildVersion: Esta é uma propriedade String que representa a versão atual do aplicativo implantado no slot. Por exemplo: "v1", "1.0.0.1" ou "2019-09-20T11:53:25.2887393-07:00".
  • targetBuildVersion: Esta é uma propriedade String que especifica o que o buildVersion slot deve ter. Se o não for igual ao atualbuildVersion, ele acionará a operação de swap localizando o slot com o targetBuildVersion especificado buildVersion.

Exemplo de modelo do Resource Manager

O modelo do Gerenciador de Recursos a seguir troca dois slots atualizando o buildVersionstaging do slot e definindo o targetBuildVersion no slot de produção. Ele pressupõe que você criou um slot chamado staging.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "my_site_name": {
            "defaultValue": "SwapAPIDemo",
            "type": "String"
        },
        "sites_buildVersion": {
            "defaultValue": "v1",
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Web/sites/slots",
            "apiVersion": "2018-02-01",
            "name": "[concat(parameters('my_site_name'), '/staging')]",
            "location": "East US",
            "kind": "app",
            "properties": {
                "buildVersion": "[parameters('sites_buildVersion')]"
            }
        },
        {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2018-02-01",
            "name": "[parameters('my_site_name')]",
            "location": "East US",
            "kind": "app",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites/slots', parameters('my_site_name'), 'staging')]"
            ],
            "properties": {
                "targetBuildVersion": "[parameters('sites_buildVersion')]"
            }
        }        
    ]
}

Este modelo do Resource Manager é idempotente, o que significa que pode ser executado repetidamente e produzir o mesmo estado dos slots. Sem qualquer alteração no modelo, as execuções subsequentes do mesmo modelo não acionam nenhuma troca de slot porque os slots já estão no estado desejado.

Solucionar problemas de trocas

Se ocorrer algum erro durante uma troca de slot, ele será registrado em D:\home\LogFiles\eventlog.xml. Ele também é registrado no log de erros específicos do aplicativo.

Aqui estão alguns erros comuns de troca:

  • Uma solicitação HTTP para a raiz do aplicativo é temporizada. A operação de permuta aguarda 90 segundos para cada solicitação HTTP e tenta novamente até cinco vezes. Se todas as novas tentativas atingirem o tempo limite, a operação de permuta será interrompida.

  • A inicialização do cache local pode falhar quando o conteúdo do aplicativo exceder a cota de disco local especificada para o cache local. Para obter mais informações, consulte Visão geral do cache local.

  • Durante o aquecimento personalizado, as solicitações HTTP são feitas internamente (sem passar pela URL externa). Eles podem falhar com certas regras de reescrita de URL no Web.config. Por exemplo, as regras para redirecionar nomes de domínio ou impor HTTPS podem impedir que as solicitações de aquecimento cheguem ao código do aplicativo. Para contornar esse problema, modifique suas regras de reescrita adicionando as duas condições a seguir:

    <conditions>
      <add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
      <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
      ...
    </conditions>
    
  • Sem um aquecimento personalizado, as regras de reconfiguração de URL ainda podem bloquear solicitações HTTP. Para contornar esse problema, modifique suas regras de reescrita adicionando a seguinte condição:

    <conditions>
      <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
      ...
    </conditions>
    
  • Após trocas de slots, o aplicativo pode sofrer reinicializações inesperadas. Isso ocorre porque após uma troca, a configuração de vinculação de nome de host fica fora de sincronia, o que por si só não causa reinicializações. No entanto, determinados eventos de armazenamento subjacentes (como failovers de volume de armazenamento) podem detetar essas discrepâncias e forçar todos os processos de trabalho a reiniciar. Para minimizar esses tipos de reinicialização, defina a configuração do aplicativo em todos os slots.WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG=1 No entanto, essa configuração de aplicativo não funciona com aplicativos do Windows Communication Foundation (WCF).

Próximos passos

Bloquear o acesso a slots não produtivos