Configurar uma aplicação ASP.NET para o Serviço de Aplicações do Azure

Nota

Para ASP.NET Core, consulte Configurar um aplicativo ASP.NET Core para o Serviço de Aplicativo do Azure. Se seu aplicativo ASP.NET for executado em um contêiner personalizado do Windows ou Linux, consulte Configurar um contêiner personalizado para o Serviço de Aplicativo do Azure.

ASP.NET aplicativos devem ser implantados no Serviço de Aplicativo do Azure como binários compilados. A ferramenta de publicação do Visual Studio cria a solução e, em seguida, implanta os binários compilados diretamente, enquanto o mecanismo de implantação do Serviço de Aplicativo implanta primeiro o repositório de código e, em seguida, compila os binários.

Este guia fornece conceitos-chave e instruções para ASP.NET desenvolvedores. Se você nunca usou o Serviço de Aplicativo do Azure, siga o tutorial ASP.NET início rápido e ASP.NET com o Banco de Dados SQL primeiro.

Mostrar versões de runtime do .NET Framework suportadas

No Serviço de Aplicativo, as instâncias do Windows já têm todas as versões suportadas do .NET Framework instaladas. Para mostrar as versões de tempo de execução e SDK do .NET Framework disponíveis para você, navegue até https://<app-name>.scm.azurewebsites.net/DebugConsole o comando apropriado no console baseado em navegador e execute-o:

Para versões de tempo de execução do CLR 4 (.NET Framework 4 e superior):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"

A versão mais recente do .NET Framework pode não estar disponível imediatamente.

Para versões de tempo de execução do CLR 2 (.NET Framework 3.5 e inferior):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"

Mostrar a versão do runtime atual do .NET Framework

Execute o seguinte comando no Cloud Shell:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

Um valor significa que a versão mais recente do v4.0 CLR 4 (.NET Framework 4.x) é usada. Um valor de significa que uma versão do v2.0 CLR 2 (.NET Framework 3.5) é usada.

Definir a versão do runtime do .NET Framework

Por padrão, o Serviço de Aplicativo usa a versão mais recente do .NET Framework com suporte para executar seu aplicativo ASP.NET. Para executar seu aplicativo usando o .NET Framework 3.5, execute o seguinte comando no Cloud Shell (v2.0 significa CLR 2):

az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0

Aceder a variáveis de ambiente

No Serviço de Aplicativo, você pode definir configurações de aplicativo e cadeias de conexão fora do código do aplicativo. Em seguida, você pode acessá-los em qualquer classe usando o padrão ASP.NET padrão:

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

Se você definir uma configuração de aplicativo com o mesmo nome no Serviço de Aplicativo e em web.config, o valor do Serviço de Aplicativo terá precedência sobre o valor web.config . O valor web.config local permite depurar o aplicativo localmente, mas o valor do Serviço de Aplicativo permite que você execute o aplicativo no produto com configurações de produção. As cadeias de conexão funcionam da mesma maneira. Dessa forma, você pode manter os segredos do aplicativo fora do repositório de código e acessar os valores apropriados sem alterar o código.

Nota

Considere opções de conectividade mais seguras que não exijam segredos de conexão. Para obter mais informações, consulte Conectividade segura com serviços e bancos de dados do Azure do Serviço de Aplicativo do Azure.

Implementar soluções multiprojeto

Quando uma solução do Visual Studio inclui vários projetos, o processo de publicação do Visual Studio já inclui a seleção do projeto a ser implantado. Quando você implanta no mecanismo de implantação do Serviço de Aplicativo, como com o Git, ou com a implantação ZIP com a automação de compilação habilitada, o mecanismo de implantação do Serviço de Aplicativo escolhe o primeiro Site ou Projeto de Aplicativo Web que encontra como o aplicativo do Serviço de Aplicativo. Você pode especificar qual projeto o Serviço de Aplicativo deve usar especificando a configuração do PROJECT aplicativo. Por exemplo, execute o seguinte no Cloud Shell:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"

Obter uma página de exceções detalhada

Quando seu aplicativo ASP.NET gera uma exceção no depurador do Visual Studio, o navegador exibe uma página de exceção detalhada, mas no Serviço de Aplicativo essa página é substituída por uma mensagem de erro genérica. Para exibir a página de exceção detalhada no Serviço de Aplicativo, abra o arquivo Web.config e adicione o <customErrors mode="Off"/> elemento sob o <system.web> elemento . Por exemplo:

<system.web>
    <customErrors mode="Off"/>
</system.web>

Reimplante seu aplicativo com o Web.config atualizado. Agora você deve ver a mesma página de exceção detalhada.

Aceder aos registos de diagnósticos

Você pode adicionar mensagens de diagnóstico no código do aplicativo usando System.Diagnostics.Trace. Por exemplo:

Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace

Para aceder aos registos da consola gerados a partir do código da sua aplicação no Serviço de Aplicações, ative o registo de diagnósticos ao executar o seguinte comando no Cloud Shell:

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

Os valores possíveis para --level são: Error, Warning, Info e Verbose. Cada nível subsequente inclui o nível anterior. Por exemplo: Error inclui apenas mensagens de erro e Verbose inclui todas as mensagens.

Depois de ativar o registo de diagnósticos, execute o seguinte comando para ver o fluxo de registos:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Se não vir os registos da consola imediatamente, volte a consultar dentro de 30 segundos.

Nota

Também pode inspecionar os ficheiros de registo no browser em https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Para parar a transmissão de registos em qualquer altura, escreva Ctrl+C.

Mais recursos