Configurar ambientes de preparo no Serviço de Aplicativo do Azure
Observação
A partir de 1º de junho de 2024, todos os aplicativos recém-criados do Serviço de Aplicativo terão a opção de gerar um nome do host padrão exclusivo usando a convenção de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Os nomes de aplicativos existentes permanecerão inalterados.
Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obter mais detalhes, consulte Nome do Host Padrão Exclusivo para o Recurso Serviço de Aplicativo.
Quando for 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 do Plano do Serviço de Aplicativo Standard, Premium ou Isolado. Os slots de implantação são aplicativos dinâmicos que possuem seus próprios nomes de host. Os elementos de configurações e conteúdo de aplicativo podem ser trocados entre dois slots de implantação, incluindo o slot de produção.
A implantação do aplicativo em um slot de não produção traz os seguintes benefícios:
- É possível validar as alterações no aplicativo em um slot de implantação de preparo antes de permutá-lo pelo slot de produção.
- Implantar um aplicativo em um slot primeiro e alterná-lo para produção garantem que todas as instâncias do slot estejam aquecidas antes de alterná-lo para produção. Isso elimina o tempo de inatividade quando você for implantar seu aplicativo. O redirecionamento de tráfego é contínuo, e nenhuma solicitação é removida devido a operações de alternância. Todo esse fluxo de trabalho pode ser automatizado configurando a troca automática quando a validação de pré-troca não for necessária.
- Após a troca, o slot com o aplicativo de preparo anterior terá o aplicativo de produção anterior. Se as alterações alternadas para o slot de produção não correspondem às suas expectativas, você pode realizar a mesma alternância imediatamente para ter o "último site válido conhecido" de volta.
Cada tipo de plano do Serviço de Aplicativo dá suporte a um número diferente de slots de implantação. Não há encargos adicionais pelo uso de slots de implantação. Para descobrir o número de slots que a camada de aplicativo suporta, consulte limites de Serviço de Aplicativo.
Para escalar o aplicativo para uma camada diferente, verifique se a camada de destino suporta o número de slots que o seu aplicativo já usa. Por exemplo, se o seu aplicativo tiver mais de cinco slots, você não pode escalar para a camada Standard, porque a camada Standard suporta somente cinco slots de implantação.
Esse 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, confira Operações do provedor de recursos (pesquise por slot, por exemplo).
Adicionar um slot
O aplicativo precisa estar em execução na camada Standard, Premium ou Isolado para que seja possível habilitar vários slots de implantação.
No portal do Azure, navegue até a instância de gerenciamento de aplicativos.
No painel esquerdo, selecione Slots de Implantação>Adicionar Slot.
Observação
Se o aplicativo ainda não estiver na camada Standard, Premium ou Isolada, selecione Atualizar e vá para a guia Escala do aplicativo antes de continuar.
Na caixa de diálogo Adicionar um Slot, digite um nome para o slot e escolha se quer clonar a configuração de aplicativo de outro slot de implantação existente. Selecione Adicionar para continuar.
Você pode clonar a configuração de qualquer slot existente. As configurações que podem ser clonadas incluem configurações de aplicativo, cadeias de conexão, versões da estrutura de linguagem, soquetes da Web, versão HTTP e número de bits da plataforma.
Observação
Atualmente, um ponto de extremidade privado não é clonado entre slots.
Depois que o slot for adicionado, selecione Fechar para fechar a caixa de diálogo. O novo slot agora é exibido na página Slots de Implantação. Por padrão, o % do tráfego está definido como 0 para o novo slot, com todo o tráfego de clientes sendo roteado para o slot de produção.
Selecione o novo slot de implantação para abrir a página de recursos deste slot.
O slot de preparo tem uma página de gerenciamento como qualquer outro aplicativo do Serviço de Aplicativo. É possível alterar a configuração do slot. Como lembrete de que você está vendo o slot de implantação, o nome do aplicativo é exibido como <app-name>/<slot-name>, e o tipo de aplicativo é o Serviço de Aplicativo (slot). Você também pode ver o slot como um aplicativo separado em seu grupo de recursos, com as mesmas denominações.
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 dinâmico. 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 nenhum conteúdo, mesmo se as configurações são clonadas de outro slot. Por exemplo, você pode publicar neste slot com o Git. É possível fazer uma implantação no slot de outro branch do repositório ou de outro repositório. Obtenha o perfil de publicação do Serviço de Aplicativo do Azure para obter as informações necessárias para implantar no slot. O perfil pode ser importado pelo Visual Studio para implantar conteúdo no slot.
A URL do slot tem o formato http://sitename-slotname.azurewebsites.net
. Para manter o comprimento da URL dentro dos limites necessários do DNS, o nome do site será truncado em 40 caracteres, e o nome do site e o nome do slot combinados precisam ter menos de 59 caracteres.
O que acontece durante uma troca
Etapas da operação de troca
Quando você troca dois slots (geralmente de um slot de preparo como fonte 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:
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:
- Configurações do aplicativo e cadeias de conexão específicas do slot, se aplicável.
- Configurações de implantação contínua, se habilitadas.
- Configurações de autenticação do Serviço de Aplicativo, se habilitadas.
Quando qualquer uma das configurações for aplicada ao slot de origem, a alteração dispara todas as instâncias no slot de origem para reiniciar. Durante a troca com pré-visualização, isso marca o final da primeira fase. A operação de troca é pausada e você pode validar se o slot de origem está funcionando corretamente com as configurações do slot de destino.
Aguarde até que todas as instâncias no slot de origem terminem a reinicialização. Se alguma instância não conseguir reiniciar, a operação de troca reverte todas as alterações no slot de origem e interrompe a operação.
Se o cache local estiver habilitado, dispare a inicialização do cache local por meio de uma solicitação HTTP para a raiz do aplicativo ("/") em cada instância do slot de origem. Aguarde até que todas as instâncias retornem uma resposta HTTP. A inicialização do cache local causa outra reinicialização em cada instância.
Se troca automática estiver habilitada com aquecimento personalizado, dispare a Iniciação do Aplicativo em cada instância do slot de origem.
Se
applicationInitialization
não for especificado, dispare uma solicitação HTTP para a raiz do aplicativo em cada instância do slot de origem.Se uma instância retornar qualquer resposta HTTP, ela é considerada como ativada.
Se todas as instâncias no slot de origem forem ativadas com êxito, troque os dois slots trocando as regras de roteamento para os dois slots. Após esta etapa, o slot de destino (por exemplo, o slot de produção) tem o aplicativo que foi anteriormente ativado no slot de origem.
Agora que o slot de origem tem o aplicativo da pré-troca que antes estava no slot de destino, execute a mesma operação, aplicando todas as configurações e reiniciando as instâncias.
Em algum ponto da operação de troca, todo o trabalho de reinicialização dos aplicativos trocados acontece no slot de origem. O slot de destino permanece online enquanto o slot de origem está sendo preparado e aquecido, independentemente de a troca ser bem-sucedida ou falhar. Para trocar um slot de preparo pelo slot de produção, confira se o slot de produção é sempre o slot de destino. Dessa forma, a operação de troca não afeta seu aplicativo de produção.
Observação
As instâncias das suas instâncias de produção antigas (aquelas que serão trocadas para o processo de preparo após essa operação de permuta) serão recicladas rapidamente na última etapa do processo de troca. Caso você tenha operações de execução prolongada em seu aplicativo, elas serão abandonadas quando os trabalhadores reciclarem. Isso também se aplica a aplicativos de funções. Portanto, o código do aplicativo deve ser escrito de maneira 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 em uma alternância (não específicos do slot), enquanto outros permanecem no mesmo slot após uma alternância (específicos do slot). A lista a seguir mostra as configurações que serão alterada com a troca de slots.
Configurações que são permutadas:
- Pilha de linguagem e versão, 32/64-bit
- Configurações do aplicativo (podem ser configuradas para fixarem-se a um slot)
- Cadeias de conexão (podem ser configuradas para fixarem-se a um slot)
- Contas de armazenamento montadas (podem ser configuradas para manter em um slot)
- Mapeamentos de manipulador
- Certificados públicos
- Conteúdo de Trabalhos Web
- Conexões híbridas *
- Pontos de extremidade de serviço *
- Rede de Distribuição de Conteúdo do Azure *
- Mapeamentos de caminho
Os recursos marcados com um asterisco (*) estão planejados para serem destrocados.
Configurações que não são alternadas:
- Configurações gerais não mencionadas em Configurações que são trocadas
- Pontos de extremidade de publicação
- Nomes de domínio personalizados
- Certificados não públicos e configurações de TLS/SSL
- Configurações de dimensionamento
- Agendadores de Trabalhos Web
- Restrições de IP
- Always On
- Configurações de Diagnóstico
- CORS (Compartilhamento de Recursos entre Origens)
- Integração de rede virtual
- Identidades gerenciadas e configurações relacionadas
- Configurações que terminam com o sufixo _EXTENSION_VERSION
- Configurações criadas pelo Conector de Serviço
Observação
Para tornar as configurações mencionadas acima intercambiáveis, adicione a configuração do aplicativo WEBSITE_OVERRIDE_PRESERVE_DEFAULT_STICKY_SLOT_SETTINGS
em cada slot do aplicativo e defina o valor como 0
ou false
. Essas configurações podem ser intercambiáveis ou não. Você não pode fazer apenas algumas configurações como intercambiá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 intercambiáveis também são trocadas. Por exemplo, como as configurações de diagnóstico não são trocadas, as configurações de aplicativo relacionadas, como WEBSITE_HTTPLOGGING_RETENTION_DAYS
e DIAGNOSTICS_AZUREBLOBRETENTIONDAYS
, também não são trocadas, mesmo que não apareçam como configurações de slot.
Para definir uma configuração de aplicativo ou uma cadeia de conexão para usar um slot específico (não trocado), vá para a página de Configurações deste slot. Adicione ou edite a configuração e, em seguida, selecione configuração do slot de implantação. A marcação dessa caixa de seleção informa ao Serviço de Aplicativo que a configuração não é intercambiável.
Alternar dois slots
Você pode alternar os 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 slot, consulte O que acontece durante a troca.
Importante
Antes de trocar um aplicativo de um slot de implantação para 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 estejam em produção.
Para trocar os slots de implantação:
Navegue até a página Slot de Implantação e selecione Trocar.
A caixa de diálogo Trocar mostra as configurações selecionadas nos slots de origem e de destino que serão alteradas.
Selecione os slots de Origem e de Destino desejados. Geralmente, o destino é o slot de produção. Selecione também as guias Alterações na Origem e Alterações no Destino e verifique se as alterações de configuração são as que você deseja. Após terminar, você pode trocar os slots imediatamente ao selecionar Trocar.
Para ver como o slot de destino executa com as novas configurações antes que a troca realmente ocorra, não clique em Trocar, mas siga as instruções descritas em Troca com pré-visualização.
Após terminar, feche a caixa de diálogo clicando em Fechar.
Se tiver problemas, consulte Solucionar problemas de trocas.
Troca com visualização (troca de várias fases)
Antes de trocar o slot de destino para produção, valide se o aplicativo está executando com as configurações trocadas. O slot de origem também é ativado antes da conclusão da troca, o que é desejável para aplicativos críticos.
Quando você executa uma troca com pré-visualização, o Serviço de Aplicativo do Azure executa a mesma operação de troca, mas pausa após a primeira etapa. Neste momento você pode verificar o resultado no slot de preparo antes de concluir a troca.
Se você cancelar a troca, o Serviço de Aplicativo do Azure aplica novamente as configurações ao slot de origem.
Observação
A troca pela versão prévia não pode ser usada quando um dos slots tem a autenticação de site habilitada.
Troca com pré-visualização:
Siga as etapas descritas em Trocar slots de implantação, mas selecione Executar Troca com Pré-visualização.
A caixa de diálogo mostra como as configurações no slot de origem mudam na fase 1, e como os slots de origem e de destino mudam na fase 2.
Quando estiver pronto para iniciar a troca, selecione Iniciar Troca.
Quando a fase 1 é concluída, você recebe uma mensagem na caixa de diálogo. Pré-visualize a troca no slot de origem navegando até
https://<app_name>-<source-slot-name>.azurewebsites.net
.Quando estiver pronto para concluir a troca pendente, selecione Concluir Troca em Ação de Troca e clique em Concluir Troca.
Para cancelar uma troca pendente, selecione Cancelar Troca e, em seguida, selecione Cancelar Troca na parte inferior.
Após terminar, feche a caixa de diálogo clicando em Fechar.
Se tiver problemas, consulte Solucionar problemas de trocas.
Reverter a troca
Se ocorrerem erros no slot de destino (por exemplo, o slot de produção) após uma alternância de slot, restaure os slots para seus estados de pré-alternância alternando os mesmos dois slots imediatamente.
Configurar a troca automática
Observação
A troca automática não tem suporte em aplicativos Web no Linux e no Aplicativo Web para Contêineres.
A troca automática otimiza cenários do Azure DevOps em que você deseja implantar seu aplicativo continuamente sem inicialização a frio e sem tempo de inatividade para os clientes do aplicativo. Quando a troca automática é habilitada a partir de um slot para produção, sempre que você envia as alterações de código para esse slot, o Serviço de Aplicativo automaticamente troca o aplicativo para produção depois que ele é ativado no slot de origem.
Observação
Antes de configurar a troca automática para o slot de produção, teste a troca automática em um slot de destino de não produção.
Configurar a troca automática:
Navegue até a página de recursos do aplicativo. Selecione Slots de Implantação><slot de origem desejado>>Configuração>Configurações Gerais.
Para habilitar a Troca automática, selecione Ativado. Em seguida, selecione o slot de destino desejado para o slot de implantação da Troca automáticae selecione Salvar na barra de comandos.
Execute um push de código para o slot de origem. A Troca automática ocorre após um curto período de tempo, e a atualização é refletida no URL do seu slot de destino.
Se tiver problemas, consulte Solucionar problemas de trocas.
Especificar preparação personalizada
Alguns aplicativos podem exigir ações de preparação personalizada antes da troca. O elemento de configuração applicationInitialization
no web.config permite que você especifique ações de inicialização personalizada. A operação de troca aguarda a conclusão dessa preparação personalizada antes de trocar com o slot de destino. Abaixo, um exemplo de parte do web.config.
<system.webServer>
<applicationInitialization>
<add initializationPage="/" hostName="[app hostname]" />
<add initializationPage="/Home/About" hostName="[app hostname]" />
</applicationInitialization>
</system.webServer>
Para mais informações sobre como personalizar o elemento applicationInitialization
, consulte falhas mais comuns na troca de slot de implantação, e como corrigi-los.
Você também pode personalizar o comportamento da preparação com uma ou ambas das seguintes configurações de aplicativo:
WEBSITE_SWAP_WARMUP_PING_PATH
: o caminho para executar o ping através de HTTP para inicializar seu site. Adicione essa configuração de aplicativo especificando um caminho personalizado que começa com uma barra (“/”) como o valor. Um exemplo é/statuscheck
. O valor padrão é/
.WEBSITE_SWAP_WARMUP_PING_STATUSES
: códigos de resposta HTTP válidos para a operação de preparação. Adicione essa configuração de aplicativo com uma lista separada por vírgulas dos códigos HTTP. Um exemplo é200,202
. Se o código de status retornado não estiver na lista, as operações de inicialização e troca são pausadas. Por padrão, todos os códigos de resposta são válidos.WEBSITE_WARMUP_PATH
: caminho relativo no site que deve ter seu ping executado sempre que o site for reiniciado (não apenas durante trocas de slot). Os valores de exemplo incluem/statuscheck
ou o caminho raiz,/
.
Observação
O elemento de configuração <applicationInitialization>
faz parte de cada preparação de aplicativo, enquanto que as duas configurações de aplicativo de comportamento de preparação se aplicam somente a trocas de slot.
Se tiver problemas, consulte Solucionar problemas de trocas.
Monitorar uma troca
Se a operação de troca levar muito tempo para ser concluída, você pode obter informações sobre a operação de troca no log de atividades.
Na página de recursos do aplicativo no portal, no painel à esquerda, selecione Log de Atividades.
Uma operação de troca é exibida na consulta de log como Swap Web App Slots
. Você pode expandi-lo e selecionar uma das suboperações ou um dos erros para ver os detalhes.
Rotear o tráfego de produção automaticamente
Por padrão, todas as solicitações de cliente para a URL de produção do aplicativo (http://<app_name>.azurewebsites.net
) são roteadas para o slot de produção. É possível rotear uma parte do tráfego para outro slot. Esse recurso é útil se você precisa de comentários do usuário para uma nova atualização, mas não está pronto para liberá-la para produção.
Para rotear o tráfego de produção automaticamente:
Navegue até a página de recursos do aplicativo e selecione Slots de Implantação.
Na coluna % do Tráfego do slot para o qual você deseja rotear, especifique um percentual (entre 0 e 100) para representar a quantidade de tráfego total que deseja rotear. Selecione Salvar.
Depois que a configuração é salva, o percentual especificado de clientes é roteado aleatoriamente para o slot de não produção.
Após rotear automaticamente um cliente 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 em qual slot a sessão está fixada observando o cookie x-ms-routing-name
nos cabeçalhos HTTP. Uma solicitação roteada para o slot "de preparo" tem o cookie x-ms-routing-name=staging
. Uma solicitação roteada para o slot de produção tem o cookie x-ms-routing-name=self
.
Rotear o tráfego de produção manualmente
Além do roteamento de tráfego automático, o Serviço de Aplicativo pode rotear solicitações para um slot específico. Isso é útil se você quiser fazer com que os usuários aceitem ou recusem a versão beta do seu aplicativo. Para rotear o tráfego de produção manualmente, use o parâmetro de consulta x-ms-routing-name
.
Para permitir que os usuários recusem a versão beta do aplicativo, por exemplo, você pode colocar este link na sua página 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 local 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 ao slot de produção.
Para permitir que os usuários aceitem o aplicativo beta, defina o mesmo parâmetro de consulta como o nome do slot de não produção. Veja um exemplo:
<webappname>.azurewebsites.net/?x-ms-routing-name=staging
Por padrão, novos slots recebem uma regra de roteamento 0%
, mostrada em cinza. Quando você define esse valor explicitamente como 0%
(mostrado em preto), os usuários podem acessar o slot de preparo manualmente usando o parâmetro de consulta x-ms-routing-name
. Mas eles não são roteados para o slot automaticamente porque a porcentagem de roteamento está definida como 0. Esse é um cenário avançado em que se pode "esconder" o slot de preparo, enquanto as equipes internas testam as alterações no slot.
Deletar um slot
Pesquise e selecione o aplicativo. Selecione o slot dos Slots de Implantação><para excluir>>Visão Geral. O tipo de aplicativo é exibido como Serviço de Aplicativo do Azure (slot) como lembrete de que você está vendo um slot de implantação. Antes de excluir um slot, pare o slot e defina o tráfego nele como zero. Selecione Excluir na barra de comandos.
Automatizar com modelos do Resource Manager
Os Modelos do Azure Resource Manager são arquivos declarativos JSON usados para automatizar a implantação e a configuração dos recursos do Azure. Para trocar os slots usando os modelos do Resource Manager, defina duas propriedades nos recursos Microsoft.Web/sites/Slots e Microsoft.Web/sites:
buildVersion
: esta é uma propriedade de cadeia de caracteres 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 de cadeia de caracteres que especifica o que obuildVersion
slot deve ter. Se otargetBuildVersion
não for igual ao atualbuildVersion
, ele acionará a operação de troca encontrando o slot com obuildVersion
especificado.
Exemplo de modelo do Resource Manager
O modelo do Resource Manager a seguir troca dois slots atualizando o buildVersion
do slot staging
e definindo o targetBuildVersion
no slot de produção. Ele pressupõe que você tenha criado 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')]"
}
}
]
}
Esse modelo do Resource Manager é idempotente, ou seja, ele pode ser executado várias vezes e produz o mesmo estado dos slots. Sem nenhuma alteração no modelo, as execuções subsequentes do mesmo modelo não disparam nenhuma troca de slot porque os slots já estão no estado desejado.
Solucionar problemas de trocas
Se ocorrerem erros durante uma troca de slot, o erro é registrado em D:\home\LogFiles\eventlog.xml. Também é registrado no log de erros específico do aplicativo.
Aqui estão alguns erros comuns de troca:
Uma solicitação HTTP para a raiz do aplicativo é cronometrada. A operação de troca aguarda 90 segundos para cada solicitação HTTP e tenta novamente até cinco vezes. Se todas as tentativas atingem o tempo limite, a operação de troca é pausada.
A inicialização do cache local pode falhar se o conteúdo do aplicativo exceder a cota de disco local especificada para o cache local. Para saber mais, consulte a Visão geral do cache do local.
Durante uma operação de atualização de site, pode ocorrer o erro a seguir "O slot não pode ser alterado porque suas configurações foram preparadas para troca". Isso pode ocorrer se a troca com a versão prévia (troca de várias fases) fase 1 tiver sido concluída, mas a fase 2 ainda não tiver sido executada ou uma troca obtiver falha. Há três maneiras de resolver esse problema:
- Cancelar a operação de troca que redefinirá o site ao estado antigo
- Concluir a operação de troca que atualizará o site para o novo estado desejado
Consulte a troca com a versão prévia (troca de várias fases) para saber como cancelar ou concluir a operação de troca.
Durante a preparação personalizada, as solicitações HTTP são feitas internamente (sem passar por URL externo). Elas podem falhar com determinadas regras de regravação de URL no Web.config. Por exemplo, regras para redirecionar nomes de domínio ou impor HTTPS podem impedir que solicitações de preparação cheguem até o código do aplicativo. Para contornar esse problema, modifique as 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 uma preparação personalizada, as regras de regravação de URL 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 as trocas de slot o aplicativo pode reinicializar de forma inesperada. Isso ocorre porque depois da troca, a configuração da associação de nome de host dessincroniza, o que sozinho não causa reinicializações. No entanto, certos eventos de armazenamento ocultos (como failovers de volume de armazenamento) podem detectar essas faltas de sincronia e forçar a reinicialização de todos os processos de trabalho. Para diminuir essas reinicializações, defina a configuração de aplicativo
WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG=1
em todos os slots. No entanto, essa configuração de aplicativo não funciona com aplicativos Windows Communication Foundation (WCF).