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
.