Udostępnij za pośrednictwem


Konfigurowanie aplikacji ASP.NET dla usługi Azure App Service

Uwaga

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

ASP.NET aplikacje muszą być wdrażane w usłudze aplikacja systemu Azure jako skompilowane pliki binarne. Narzędzie do publikowania programu Visual Studio kompiluje rozwiązanie, a następnie wdraża skompilowane pliki binarne bezpośrednio, podczas gdy aparat wdrażania usługi 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 usługi aplikacja systemu Azure Service, najpierw postępuj zgodnie z przewodnikiem Szybki start ASP.NET i ASP.NET z usługą SQL Database.

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

W usłudze App Service wystąpienia systemu Windows mają już zainstalowane wszystkie obsługiwane wersje programu .NET Framework. Aby wyświetlić dostępne wersje środowiska uruchomieniowego programu .NET Framework i zestawu SDK, 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 programu .NET Framework może nie być natychmiast dostępna.

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

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

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

Uruchom następujące polecenie w usłudze Cloud Shell:

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

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

Ustawianie wersji środowiska uruchomieniowego programu .NET Framework

Domyślnie usługa App Service używa najnowszej obsługiwanej wersji programu .NET Framework do uruchamiania aplikacji ASP.NET. Aby zamiast tego uruchomić aplikację przy użyciu programu .NET Framework 3.5, uruchom następujące polecenie w usłudze 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 usłudze App Service można ustawić ustawienia aplikacji i parametry połączenia poza kodem aplikacji. Następnie możesz 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 usłudze App Service i w pliku web.config, wartość usługi App Service ma pierwszeństwo przed wartością web.config . Lokalna wartość web.config umożliwia lokalne debugowanie aplikacji, ale wartość usługi App Service umożliwia uruchamianie aplikacji w produkcie z ustawieniami produkcyjnymi. 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 konieczności zmieniania kodu.

Uwaga

Rozważ bardziej bezpieczne opcje łączności, które w ogóle nie wymagają wpisów tajnych połączenia. Aby uzyskać więcej informacji, zobacz Zabezpieczanie łączności z usługami i bazami danych platformy Azure z usługi aplikacja systemu Azure Service.

Wdrażanie rozwiązań wieloprojektowych

Gdy rozwiązanie programu Visual Studio zawiera wiele projektów, proces publikowania programu Visual Studio zawiera już wybór projektu do wdrożenia. Po wdrożeniu w akomponecie wdrażania usługi App Service, takim jak w usłudze Git lub wdrożeniu zip z włączoną automatyzacją kompilacji, aparat wdrażania usługi App Service wybiera pierwszą witrynę internetową lub projekt aplikacji internetowej, który znajduje jako aplikację usługi App Service. Możesz określić, który projekt ma być używany przez usługę PROJECT App Service, określając ustawienie aplikacji. Uruchom na przykład następujące polecenie w usłudze Cloud Shell:

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

Uzyskiwanie strony szczegółowych wyjątków

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

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

Ponownie wdróż aplikację przy użyciu zaktualizowanej pliku 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. Na 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