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

Nota

Para ASP.NET Core, veja Configurar uma aplicação ASP.NET Core para Serviço de Aplicações do Azure. Se a sua aplicação ASP.NET for executada num contentor windows ou Linux personalizado, veja Configurar um contentor personalizado para Serviço de Aplicações do Azure.

ASP.NET aplicações têm de ser implementadas para Serviço de Aplicações do Azure como binários compilados. A ferramenta de publicação do Visual Studio cria a solução e, em seguida, implementa os binários compilados diretamente, enquanto o Serviço de Aplicações motor de implementação implementa primeiro o repositório de código e, em seguida, compila os binários.

Este guia fornece conceitos e instruções fundamentais para programadores de ASP.NET. Se nunca utilizou Serviço de Aplicações do Azure, siga primeiro o início rápido ASP.NET e ASP.NET com Base de Dados SQL tutorial.

Mostrar versões de runtime de .NET Framework suportadas

No Serviço de Aplicações, as instâncias do Windows já têm todas as versões de .NET Framework suportadas instaladas. Para mostrar o .NET Framework runtime e as versões do SDK disponíveis para si, navegue para https://<app-name>.scm.azurewebsites.net/DebugConsole e execute o comando adequado na consola baseada no browser:

Para versões de runtime CLR 4 (.NET Framework 4 e superior):

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

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

Para versões de runtime CLR 2 (.NET Framework 3.5 e abaixo):

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

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

Execute o seguinte comando no Cloud Shell:

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

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

Definir .NET Framework versão do runtime

Por predefinição, Serviço de Aplicações utiliza a versão de .NET Framework suportada mais recente para executar a sua aplicação ASP.NET. Em vez disso, para executar a sua aplicação com 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 Aplicações, pode definir definições da aplicação e cadeias de ligação fora do código da aplicação. Em seguida, pode aceder aos mesmos em qualquer classe com o padrão de ASP.NET padrão:

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

Se configurar uma definição de aplicação com o mesmo nome no Serviço de Aplicações e no web.config, o valor Serviço de Aplicações tem precedência sobre o valor web.config. O valor deweb.config local permite-lhe depurar a aplicação localmente, mas o valor Serviço de Aplicações permite-lhe executar a aplicação no produto com as definições de produção. As cadeias de ligação funcionam da mesma forma. Desta forma, pode manter os segredos da aplicação fora do repositório de código e aceder aos valores adequados sem alterar o código.

Implementar soluções de vários projetos

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 implementar. Quando implementa no motor de implementação Serviço de Aplicações, como com o Git, ou com a implementação zip com a automatização de compilação ativada, o motor de implementação de Serviço de Aplicações escolhe o primeiro Web Site ou Projeto de Aplicação Web que encontra como a aplicação Serviço de Aplicações. Pode especificar que projeto Serviço de Aplicações deve utilizar ao especificar a definição da aplicaçãoPROJECT. 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"

Página Obter exceções detalhadas

Quando a sua aplicação ASP.NET gera uma exceção no depurador do Visual Studio, o browser apresenta uma página de exceção detalhada, mas no Serviço de Aplicações essa página é substituída por uma mensagem de erro genérica. Para apresentar a página de exceção detalhada no Serviço de Aplicações, abra o ficheiro Web.config e adicione o <customErrors mode="Off"/> elemento sob o <system.web> elemento . Por exemplo:

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

Reimplemente a sua aplicação com o Web.configatualizado. Deverá ver agora a mesma página de exceção detalhada.

Aceder aos registos de diagnósticos

Pode adicionar mensagens de diagnóstico no código da aplicação através de 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