Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Сведения о ASP.NET Core см. в разделе "Настройка приложения ASP.NET Core" для службы приложений Azure. Если приложение ASP.NET работает в пользовательском контейнере Windows или Linux, см. статью "Настройка пользовательского контейнера для службы приложений Azure".
Приложения ASP.NET необходимо развертывать в службе приложений Azure как скомпилированные двоичные файлы. Средство публикации Visual Studio создает решение, а затем напрямую развертывает скомпилированные двоичные файлы, тогда как механизм развертывания службы приложений сначала развертывает репозиторий кода, а затем компилирует двоичные файлы.
В этом руководстве представлены ключевые концепции и инструкции для разработчиков ASP.NET. Если вы никогда не использовали службу приложений Azure, сначала следуйте ASP.NET краткому руководству и ASP.NET с помощью базы данных SQL .
Показать поддерживаемые версии среды выполнения .NET Framework
В службе приложений на экземплярах Windows уже установлены все поддерживаемые версии .NET Framework. Чтобы отобразить доступные для вас версии среды выполнения и пакета SDK для .NET Framework, перейдите к приложению на портале Azure. Выберите Средства разработки>расширенные средства. Нажмите кнопку "Перейти". В Kudu выберите консоль отладки для CMD или PowerShell. Выполните соответствующую команду в консоли на основе браузера:
Для версий среды выполнения CLR 4 (.NET Framework 4 и выше):
ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"
Последняя версия .NET Framework может быть недоступна сразу.
Для версий среды выполнения CLR 2 (.NET Framework 3.5 и ниже):
ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"
Если среда выполнения вашего приложения не поддерживается, его можно развернуть с помощью пользовательского контейнера.
Показать текущую версию среды выполнения .NET Framework
Выполните следующую команду в Cloud Shell:
az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion
Значение v4.0
означает, что используется последняя версия CLR 4 (.NET Framework 4.x). Значение v2.0
означает, что используется версия CLR 2 (.NET Framework 3.5).
Установить версию среды выполнения .NET Framework
По умолчанию служба приложений использует последнюю поддерживаемую версию .NET Framework для запуска вашего приложения ASP.NET. Чтобы запустить приложение с помощью .NET Framework 3.5, выполните следующую команду в Cloud Shell (версия 2.0 означает CLR 2):
az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0
Что происходит с устаревшими средами выполнения в службе приложений?
Устаревшие среды выполнения объявляются устаревшими поддерживающей организацией или обнаружено, что они имеют значительные уязвимости. Соответственно, они удаляются из страниц создания и настройки на портале. Если устаревшая среда выполнения скрыта на портале, любое приложение, которое по-прежнему используется этой средой выполнения, продолжает выполняться.
Если вы хотите создать приложение с устаревшей версией среды выполнения, которая больше не отображается на портале, используйте Azure CLI, шаблон ARM или Bicep. Эти варианты развертывания позволяют создавать устаревшие среды выполнения, которые были удалены на портале, но по-прежнему поддерживаются.
Если среда выполнения полностью удалена из платформы службы приложений, владелец подписки Azure получает уведомление по электронной почте перед удалением.
Доступ к переменным среды
В службе приложений можно задать параметры приложения и строки подключения за пределами кода приложения. Затем вы можете получить к ним доступ в любом классе, используя стандартный шаблон ASP.NET:
using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}
Если настроить параметр приложения с тем же именем в Службе приложений и в web.config, значение службы приложений имеет приоритет над значением web.config . Локальное web.config значение позволяет локально отлаживать приложение, но значение службы приложений позволяет запускать приложение в продукте с параметрами рабочей среды. Строки подключения работают точно так же. Таким образом, вы можете хранить секреты своего приложения вне репозитория кода и получать доступ к соответствующим значениям без изменения кода.
Примечание.
Рассмотрите более безопасные параметры подключения, которые не требуют секретов подключения вообще. Дополнительные сведения см. в статье "Безопасное подключение к службам и базам данных Azure" из службы приложений Azure.
Развертывание многопроектных решений
Если решение Visual Studio включает несколько проектов, процесс публикации Visual Studio уже включает выбор проекта для развертывания. При развертывании в модуле развертывания службы приложений Azure, например с помощью Git или с zip-развертыванием при включенной автоматизации сборки, модуль развертывания службы приложений Azure выбирает первый веб-сайт или проект веб-приложения, который он находит, как приложение службы. Чтобы указать, какую службу приложений проекта следует использовать, задайте параметр PROJECT
приложения. Например, выполните следующую команду в Cloud Shell:
az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"
Получить подробную страницу исключений
Когда ваше приложение ASP.NET создает исключение в отладчике Visual Studio, браузер отображает подробную страницу исключения, но в службе приложений эта страница заменяется общим сообщением об ошибке. Чтобы отобразить подробную страницу исключений в Службе приложений, откройте файлWeb.config и добавьте <customErrors mode="Off"/>
элемент в <system.web>
элемент. Например:
<system.web>
<customErrors mode="Off"/>
</system.web>
Разверните приложение заново с обновленным Web.config. Теперь вы должны увидеть ту же подробную страницу исключений.
Доступ к журналам диагностики
Вы можете добавлять диагностические сообщения в код приложения с помощью System.Diagnostics.Trace. Например:
Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace
Чтобы получить доступ к журналам консоли, созданным из кода приложения в Службе приложений, включите ведение журнала диагностики, выполнив следующую команду в Cloud Shell:
az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose
Возможные значения для --level
: Error
, Warning
, Info
и Verbose
. Каждый последующий уровень включает предыдущий уровень. Например, Error
включает только сообщения об ошибках.
Verbose
включает все сообщения.
После включения ведения журнала диагностики выполните следующую команду, чтобы просмотреть поток журналов:
az webapp log tail --resource-group <resource-group-name> --name <app-name>
Если журналы консоли не отображаются немедленно, повторите попытку через 30 секунд.
Чтобы остановить потоковую передачу журналов в любое время, нажмите клавиши CTRL+C.