Konfigurowanie aplikacji ASP.NET dla Azure App Service

Uwaga

Aby uzyskać ASP.NET Core, zobacz Konfigurowanie aplikacji ASP.NET Core dla Azure App Service. Jeśli aplikacja ASP.NET działa w niestandardowym kontenerze systemu Windows lub Linux, zobacz Konfigurowanie niestandardowego kontenera dla Azure App Service.

ASP.NET aplikacje muszą być wdrażane w Azure App Service jako skompilowane pliki binarne. Narzędzie do publikowania programu Visual Studio kompiluje rozwiązanie, a następnie wdraża skompilowane pliki binarne bezpośrednio, natomiast aparat wdrażania App Service najpierw wdraża repozytorium kodu, a następnie kompiluje pliki binarne.

Ten przewodnik zawiera kluczowe pojęcia i instrukcje dla deweloperów ASP.NET. Jeśli nigdy nie używasz Azure App Service, najpierw postępuj zgodnie z przewodnikiem Szybki start ASP.NET i ASP.NET z samouczkiem dotyczącym SQL Database.

Pokaż obsługiwane wersje środowiska uruchomieniowego .NET Framework

W App Service wystąpienia systemu Windows mają już zainstalowane wszystkie obsługiwane wersje .NET Framework. Aby wyświetlić dostępne wersje środowiska uruchomieniowego i zestawu SDK .NET Framework, przejdź do https://<app-name>.scm.azurewebsites.net/DebugConsole i uruchom odpowiednie polecenie w konsoli opartej na przeglądarce:

W przypadku wersji środowiska uruchomieniowego CLR 4 (.NET Framework 4 i nowszych):

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

Najnowsza wersja .NET Framework może nie być natychmiast dostępna.

W przypadku wersji środowiska uruchomieniowego CLR 2 (.NET Framework 3.5 i poniżej):

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

Pokaż bieżącą wersję środowiska uruchomieniowego .NET Framework

Uruchom następujące polecenie w Cloud Shell:

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

Wartość oznacza, że jest używana najnowsza v4.0 wersja środowiska CLR 4 (.NET Framework 4.x). Wartość oznacza, v2.0 że jest używana wersja CLR 2 (.NET Framework 3.5).

Ustawianie wersji środowiska uruchomieniowego .NET Framework

Domyślnie App Service używa najnowszej obsługiwanej wersji .NET Framework do uruchamiania aplikacji ASP.NET. Aby zamiast tego uruchomić aplikację przy użyciu .NET Framework 3.5, uruchom następujące polecenie w Cloud Shell (wersja 2.0 oznacza CLR 2):

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

Uzyskiwanie dostępu do zmiennych środowiskowych

W App Service można ustawić ustawienia aplikacji i parametry połączenia poza kodem aplikacji. Następnie można uzyskać do nich dostęp w dowolnej klasie przy użyciu standardowego wzorca ASP.NET:

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

Jeśli skonfigurujesz ustawienie aplikacji o tej samej nazwie w App Service i wweb.config, wartość App Service ma pierwszeństwo przed wartością web.config. Wartość web.config lokalnie umożliwia debugowanie aplikacji lokalnie, ale wartość App Service umożliwia uruchamianie aplikacji w produkcie przy użyciu ustawień produkcyjnych. Parametry połączenia działają w taki sam sposób. Dzięki temu możesz przechowywać wpisy tajne aplikacji poza repozytorium kodu i uzyskiwać dostęp do odpowiednich wartości bez zmiany kodu.

Wdrażanie rozwiązań z wieloma projektami

Gdy rozwiązanie programu Visual Studio zawiera wiele projektów, proces publikowania programu Visual Studio zawiera już wybór projektu do wdrożenia. Podczas wdrażania do aparatu wdrażania App Service, takiego jak git, lub wdrażania ZIP z włączoną automatyzacją kompilacji, aparat wdrażania App Service wybiera pierwszą witrynę sieci Web lub projekt aplikacji internetowej, który znajduje jako aplikację App Service. Możesz określić, którego projektu App Service użyć, określając PROJECT ustawienie aplikacji. Na przykład uruchom następujące polecenie w Cloud Shell:

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

Uzyskiwanie szczegółowej strony wyjątków

Gdy aplikacja ASP.NET generuje wyjątek w debugerze programu Visual Studio, w przeglądarce zostanie wyświetlona szczegółowa strona wyjątku, ale w App Service ta strona zostanie zastąpiona ogólnym komunikatem o błędzie. Aby wyświetlić szczegółową stronę wyjątku w App Service, otwórz plik Web.config i dodaj <customErrors mode="Off"/> element w obszarze <system.web> elementu. Przykład:

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

Ponownie wdróż aplikację przy użyciu zaktualizowanej Web.config. Powinna zostać wyświetlona ta sama szczegółowa strona wyjątku.

Uzyskiwanie dostępu do dzienników diagnostycznych

Komunikaty diagnostyczne można dodać w kodzie aplikacji przy użyciu elementu System.Diagnostics.Trace. Przykład:

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

Aby uzyskać dostęp do dzienników konsoli wygenerowanych wewnątrz kodu aplikacji w usłudze App Service, włącz rejestrowanie diagnostyczne, uruchamiając następujące polecenie w usłudze Cloud Shell:

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

Możliwe wartości parametru --level to: Error, Warning, Info i Verbose. Każdy kolejny poziom obejmuje poprzedni poziom. Na przykład poziom Error obejmuje tylko komunikaty o błędach, a poziom Verbose obejmuje wszystkie komunikaty.

Po włączeniu rejestrowania diagnostycznego uruchom następujące polecenie, aby wyświetlić strumień dziennika:

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

Jeśli nie widzisz dzienników konsoli, sprawdź ponownie w ciągu 30 sekund.

Uwaga

Pliki dzienników można także sprawdzać w przeglądarce pod adresem https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Aby w dowolnym momencie zatrzymać przesyłanie strumieniowe dzienników, naciśnij kombinację klawiszy Ctrl+C.

Więcej zasobów