Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба приложений Azure — это служба веб-размещения с самостоятельной установкой исправлений и высоким уровнем масштабируемости. В этом руководстве показано, как развернуть управляемое данными приложение ASP.NET в Службе приложений, а затем подключить его к Базе данных SQL Azure.
После завершения работы с руководством у вас есть приложение ASP.NET, подключенное к базе данных SQL Azure, работающей в Azure. В следующем примере показан интерфейс приложения.
Изучив это руководство, вы:
- Публикация веб-приложения на основе данных в Azure.
- Создайте базу данных SQL Azure для хранения данных приложения.
- Подключите приложение ASP.NET к базе данных SQL Azure.
- Настройте управляемое удостоверение и аутентификацию с помощью Microsoft Entra ID для подключения к базе данных.
- Обновите модель данных и повторно разверните приложение.
- Передача потоком журналов приложений из Azure в Visual Studio.
Необходимые компоненты
- Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
- Установите Visual Studio 2022, а также следующие рабочие нагрузки: ASP.NET и веб-разработка и Разработка Azure.
- Вы можете добавить рабочие нагрузки в существующую установку Visual Studio, выбрав команду "Получить инструменты и компоненты " в меню "Инструменты Visual Studio".
- Убедитесь, что у вас есть последние обновления для Visual Studio 2022, выбрав "Справка>", чтобыпроверить наличие обновлений и установить последнюю версию при необходимости.
Создание и запуск приложения
Пример проекта содержит базовое приложение ASP.NET MVC create-read-update-delete (CRUD), которое использует Entity Framework Code First.
Скачайте пример проекта и извлеките файл dotnet-sqldb-tutorial-master.zip .
Откройте извлеченный файл dotnet-sqldb-tutorial-master/DotNetAppSqlDb.sln в Visual Studio.
Нажмите клавишу F5 , чтобы запустить приложение и открыть его в браузере по умолчанию.
Примечание.
При необходимости установите отсутствующие пакеты NuGet.
В приложении выберите "Создать" и создайте пару to-do элементов.
Проверьте ссылки Изменить, Сведения и Удалить.
Публикация приложения в Azure
Чтобы опубликовать приложение в Azure, создайте и настройте профиль публикации, который включает в себя службу приложений Azure и план службы приложений для размещения приложения. Затем вы создаете SQL-сервер Azure и базу данных SQL Azure для хранения данных приложения и настраиваете контекст данных для подключения приложения к базе данных.
В обозревателе решений Visual Studio щелкните правой кнопкой мыши проект DotNetAppSqlDb и выберите "Опубликовать".
На экране "Публикация" выберите Azure в качестве целевого объекта и нажмите кнопку "Далее".
На следующем экране убедитесь, что выбрана служба приложений Azure (Windows) и нажмите кнопку "Далее".
Вход и добавление службы приложений Azure
На следующем экране публикации войдите в учетную запись Майкрософт и подписку, которую вы хотите использовать.
Рядом со службой приложений нажмите кнопку "Создать".
Настройка службы приложений Azure
На экране службы приложений (Windows) настройте имя службы приложений, группу ресурсов и план размещения.
В разделе "Имя" можно сохранить имя созданного веб-приложения или изменить его на другое имя с символами
a-z
,0-9
а также-
. Имя веб-приложения должно быть уникальным для всех приложений Azure.Рядом с группой ресурсов выберите "Создать" и назовите группу ресурсов myResourceGroup.
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.
Рядом с полем План размещения выберите Создать.
План службы приложений указывает расположение, размер и функции фермы веб-серверов, в которой размещается приложение. Вы можете сэкономить средства при размещении нескольких приложений, настроив совместное использование одного плана службы приложений в веб-приложениях.
Планы службы приложений определяют такие компоненты:
- регион (например, Северная Европа, восточная часть США или Юго-Восточная Азия);
- Размер экземпляра (небольшой, средний, крупный)
- Число экземпляров при масштабировании (от 1 до 20)
- SKU ("Бесплатный", "Общий", "Базовый", "Стандартный" или "Премиум").
Завершите экран "План размещения " и нажмите кнопку "ОК".
Параметр Предлагаемое значение Дополнительные сведения План службы приложений myAppServicePlan Планы службы приложений Местонахождение Восточная часть США Регионы Azure Размер Бесплатно Ценовые категории На экране Службы приложений (Windows) нажмите кнопку "Создать" и дождитесь создания ресурсов Azure.
На экране публикации отображаются настроенные ресурсы. Нажмите кнопку Готово, затем Закрыть.
Создание сервера и базы данных
Прежде чем создать базу данных, вам потребуется логический СЕРВЕР SQL Server. Логический сервер SQL — это логическая конструкция, которая содержит группу баз данных, которыми можно управлять как группой.
На экране публикации приложения DotNetAppSqlDb в разделе "Зависимости службы" выберите многоточие ... рядом с базой данных SQL Server и нажмите кнопку "Подключить".
Примечание.
Не забудьте настроить базу данных SQL на вкладке "Публикация ", а не на вкладке "Подключенные службы ".
На экране "Подключение к зависимости" выберите базу данных SQL Azure и нажмите кнопку "Далее".
На экране "Настройка базы данных SQL Azure" выберите "Создать".
На экране базы данных SQL Azure рядом с сервером базы данных нажмите кнопку "Создать".
Измените имя сервера на нужное значение. Имя сервера должно быть уникальным на всех серверах в SQL Azure.
Нажмите ОК.
На экране базы данных SQL Azure сохраните имя базы данных по умолчанию. Щелкните команду Создать и дождитесь создания ресурсов базы данных.
После создания ресурсов базы данных нажмите кнопку "Далее".
На экране "Подключение к базе данных SQL Azure" нажмите кнопку "Готово".
Примечание.
Если вместо этого отображаются файлы секретов локальных пользователей , убедитесь, что вы использовали страницу публикации , а не страницу "Подключенные службы" , чтобы настроить базу данных SQL.
Теперь подключение к базе данных SQL Azure настроено для использования управляемого удостоверения для служб Azure, безопасного метода подключения приложения к ресурсам Azure, которые не используют секреты или пароли. Теперь необходимо задать соответствующие разрешения для пользователя SQL, соответствующего этому управляемому удостоверению, чтобы подключение работало.
Настройка управляемого удостоверения
Когда мастер создания базы данных Azure SQL настроил сервер Azure SQL с управляемым удостоверением и проверкой подлинности по умолчанию Entra ID, он добавил вашу учетную запись Entra ID в качестве администратора Azure SQL. Если вы вошли в ту же учетную запись в Visual Studio, вы можете использовать ту же строку подключения для подключения к базе данных как в Visual Studio, так и в Azure.
В меню "Сервисов" выберите диспетчер пакетов NuGet>Консоль диспетчера пакетов.
В консоли диспетчера пакетов установите следующие пакеты:
Install-Package Microsoft.Data.SqlClient Install-Package Microsoft.EntityFramework.SqlServer
В командной строке PowerShell выполните следующую команду, чтобы войти в базу данных SQL, заменив
<server-name>
имя сервера и<entra-id-user>
имя пользователя Microsoft Entra, используемое для настройки базы данных в Visual Studio. Этот пользователь Entra имеет доступ администратора к серверу базы данных по умолчанию.sqlcmd -S <servername>.database.windows.net -d DotNetAppSqlDb_db -U <entra-id-user> -G -l 30
Следуйте подсказкам, чтобы войти.
В командной строке SQL выполните следующие команды, чтобы предоставить минимальные разрешения, необходимые вашему приложению, заменив
<app-name>
на имя вашего приложения.CREATE USER [<app-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<app-name>]; ALTER ROLE db_datawriter ADD MEMBER [<app-name>]; ALTER ROLE db_ddladmin ADD MEMBER [<app-name>]; GO
Обновление контекста базы данных
Приложение использует контекст базы данных для подключения к базе данных, на которую ссылается файл Models/MyDatabaseContext.cs . В этом разделе вы обновите код, чтобы ссылаться на поставщика Entity Framework 6 SQL Server, который зависит от современного поставщика ADO.NET Microsoft.Data.SqlClient.
Поставщик Entity Framework 6 заменяет встроенный System.Data.SqlClient
поставщик SQL Server и поддерживает методы проверки подлинности Microsoft Entra ID. Дополнительные сведения см. в статье Microsoft.EntityFramework.SqlServer}.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))]
работает локально, чтобы использовать Microsoft.Data.SqlClient
для контекста базы данных, но поскольку System.Data.SqlClient
жестко закодирован как поставщик в Службе приложений Azure, необходимо расширить MicrosoftSqlDbConfiguration
, чтобы перенаправлять ссылки с System.Data.SqlClient
на Microsoft.Data.SqlClient
.
В web.config удалите
entityFramework/providers/provider
раздел и строку:<provider invariantName="System.Data.SqlClient" .../>
В Models/MyDatabaseContext.cs добавьте следующий класс:
public class AppServiceConfiguration : MicrosoftSqlDbConfiguration { public AppServiceConfiguration() { SetProviderFactory("System.Data.SqlClient", Microsoft.Data.SqlClient.SqlClientFactory.Instance); SetProviderServices("System.Data.SqlClient", MicrosoftSqlProviderServices.Instance); SetExecutionStrategy("System.Data.SqlClient", () => new MicrosoftSqlAzureExecutionStrategy()); } }
Добавьте следующий атрибут в объявление класса
MyDatabaseContext
.[DbConfigurationType(typeof(AppServiceConfiguration))]
Развертывание приложения ASP.NET
В верхней части вкладки "Публикация " выберите "Опубликовать". Приложение ASP.NET развертывается в Azure, а браузер по умолчанию запускается по URL-адресу развернутого приложения.
Чтобы протестировать приложение, добавьте несколько to-do элементов.
Поздравляем! Вы запустили управляемое данными приложение ASP.NET в службе приложений Azure.
Использование обозревателя объектов SQL Server
С помощью обозревателя объектов SQL Studio SQL Server можно легко изучить базу данных SQL Azure и управлять ими. В обозревателе объектов SQL Server можно выполнять наиболее распространенные операции базы данных, такие как выполнение запросов или создание таблиц, представлений и хранимых процедур.
Разрешение клиентских подключений с вашего компьютера
По умолчанию сервер Azure разрешает подключения к базам данных только из служб Azure, таких как ваше приложение Azure. Новая база данных открыла брандмауэр для созданного вами приложения Службы приложений.
Чтобы получить доступ к базе данных с локального компьютера, например из Visual Studio, сервер Azure должен открыть брандмауэр, чтобы разрешить доступ к общедоступному IP-адресу компьютера.
Если появится запрос на добавление доступа для локального клиента, установите флажок "Разрешить общедоступный IP-адрес компьютера". Этот параметр создает правило брандмауэра, чтобы разрешить общедоступный IP-адрес локального компьютера. Диалоговое окно уже заполнено текущим IP-адресом компьютера.
Если вы не получите запрос на добавление доступа к локальному компьютеру, перейдите в базу данных SQL Azure на портале Azure и выберите "Задать брандмауэр сервера " в верхней строке меню. На странице "Сеть" в разделе "Правила брандмауэра" выберите параметр "Добавить адрес IPv4 клиента".
Примечание.
Если поставщик услуг Интернета изменит ваш общедоступный IP-адрес, необходимо перенастроить брандмауэр для возобновления доступа к базе данных Azure.
Подключение к базе данных SQL Azure локально
В меню Представление выберите Обозреватель объектов SQL Server.
В верхней части окна обозревателя объектов SQL Server щелкните значок добавления SQL Server.
На экране "Подключение" подключение отображается под узлом Azure . Заполните сведения о имени сервера, имени пользователя, пароля и имени базы данных и нажмите кнопку "Подключить".
После того как Visual Studio завершит настройку подключения к экземпляру вашей базы данных SQL, ваша база данных появится в обозревателе объектов SQL Server. Разверните <имя>>>базы данных<> подключения, чтобы просмотреть данные.>
Разверните таблицы, щелкните таблицу
ToDoes
правой кнопкой мыши и выберите "Просмотреть данные ", чтобы взаимодействовать с данными базы данных.
Обновление приложения с помощью первой миграции кода
Вы можете использовать знакомые средства в Visual Studio для обновления базы данных и приложения в Azure. На этом шаге вы используете Code First Migrations в Entity Framework для изменения схемы базы данных и публикации изменений на Azure.
Дополнительные сведения об использовании Entity Framework Code First Migrations см. в статье Getting Started with Entity Framework 6 Code First using MVC 5 (Начало работы с Entity Framework 6 Code First с помощью MVC 5).
Обновление модели данных
Откройте файл Models\Todo.cs в редакторе кода. Добавьте в класс ToDo
следующее свойство:
public bool Done { get; set; }
Локальный запуск Code First Migrations
Выполните несколько команд, чтобы обновить локальную базу данных.
В меню "Сервисов" выберите диспетчер пакетов NuGet>Консоль диспетчера пакетов.
В окне консоли диспетчера пакетов включите Code First Migrations:
Enable-Migrations
Добавьте миграцию:
Add-Migration AddProperty
Обновите локальную базу данных:
Update-Database
Нажмите клавиши CTRL+F5 , чтобы запустить приложение. Проверьте ссылки "Изменить", "Сведения" и "Создать".
Если приложение загружается без ошибок, успешно выполнена миграция кода. Однако страница по-прежнему выглядит так же, так как логика приложения еще не использует это новое свойство.
Использование нового свойства
Внесите некоторые изменения в код, чтобы увидеть свойство Done
в действии. В этом руководстве вы измените только представления Index
и Create
, чтобы использовать новое свойство.
Откройте Controllers\TodosController.cs и в методе
Create()
строки 52 добавьтеDone
в список свойств в атрибутеBind
. ПодписьCreate()
метода должна выглядеть следующим образом:public ActionResult Create([Bind(Include = "Description,CreatedDate,Done")] Todo todo)
Откройте Views\Todos\Create.cshtml и обратите внимание на элемент
<div class="form-group">
, который используетmodel.Description
, и на элемент<div class="form-group">
, который используетmodel.CreatedDate
в коде Razor.После этих двух элементов добавьте следующий
<div class="form-group">
элемент, который используетmodel.Done
:<div class="form-group"> @Html.LabelFor(model => model.Done, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> <div class="checkbox"> @Html.EditorFor(model => model.Done) @Html.ValidationMessageFor(model => model.Done, "", new { @class = "text-danger" }) </div> </div> </div>
Откройте Views\Todos\Index.cshtml и сразу над пустым
<th></th>
элементом добавьте следующий код Razor:<th> @Html.DisplayNameFor(model => model.Done) </th>
Над элементом
<td>
, содержащим вспомогательныеHtml.ActionLink()
методы, добавьте другой<td>
элемент со следующим кодом Razor:<td> @Html.DisplayFor(modelItem => item.Done) </td>
Сохраните все файлы и нажмите клавиши CTRL+F5 , чтобы запустить приложение.
В приложении добавьте элемент to-do и нажмите кнопку "Готово". Элемент должен отображаться на домашней странице как завершенный элемент. В представлении "Изменить " не отображается поле "Готово ", так как вы не изменили представление "Изменить ".
Включение Code First Migrations в Azure
Теперь, когда изменения кода работают, включая миграцию базы данных, вы можете опубликовать его в приложении Azure и обновить базу данных SQL Azure с помощью code First Migrations.
В обозревателе решений Visual Studio щелкните проект правой кнопкой мыши и выберите "Опубликовать".
Выберите "Дополнительные действия">"Изменить", чтобы открыть параметры публикации.
В раскрывающемся списке MyDatabaseContext выберите подключение к базе данных SQL Azure.
Выберите "Выполнить первый перенос кода" (выполняется при запуске приложения) и нажмите кнопку "Сохранить".
Публикация изменений
Включив Code First Migrations в приложении Azure, опубликуйте изменения кода.
На странице Публикация выберите Опубликовать.
В опубликованном веб-приложении попробуйте добавить еще to-do элементы и выбрать Готово, и они должны отображаться на домашней странице как завершенные элементы.
Все имеющиеся элементы списка дел по-прежнему отображаются. При повторной публикации приложения ASP.NET существующие данные в базе данных SQL Azure не теряются. Кроме того, при первой миграции кода изменяется только схема данных и данные остаются нетронутыми.
Потоковая передача журналов приложений
Сообщения трассировки можно передавать прямо из приложения Azure в Visual Studio.
Откройте controllers\TodosController.cs и обратите внимание, что каждое действие начинается с Trace.WriteLine()
метода. В этом коде показано, как добавить сообщения трассировки в приложение Azure.
Включить потоковую передачу журналов
На странице Visual Studio публикации прокрутите вниз до раздела «Размещение».
Выберите многоточие ... в правом верхнем углу и выберите "Просмотр журналов потоковой передачи".
Теперь журналы передаются в окно Выходные данные.
Вы еще не видите сообщений трассировки, так как при первом выборе параметра "Просмотр журналов потоковой передачи" приложение Azure устанавливает уровень
Error
трассировки, в котором регистрируются только события ошибок с помощьюTrace.TraceError()
метода.
Изменение уровней трассировки
Чтобы изменить уровни трассировки для вывода других сообщений трассировки, в разделе "Размещение " страницы "Публикация " выберите ... в правом верхнем углу и нажмите кнопку "Открыть" на портале Azure.
На странице портала Azure для приложения выберите журналы службы приложений в разделе "Мониторинг " в меню слева.
В разделе "Журналирование приложения (Файловая система)" выберите "Подробное" в поле "Уровень", а затем нажмите "Сохранить".
Совет
Вы можете поэкспериментировать с различными уровнями трассировки, чтобы посмотреть, какие типы сообщений отображаются для каждого уровня. Например, уровень Информация включает все журналы, созданные
Trace.TraceInformation()
,Trace.TraceWarning()
, иTrace.TraceError()
, но не включает журналы, созданныеTrace.WriteLine()
.В вашем браузере снова перейдите к приложению списка Azure to-do и осмотрите приложение. Теперь сообщения трассировки, такие как приведенные ниже примеры, передаются в окно вывода в Visual Studio.
Application:2025-05-12T23:41:11 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:04 PID[17108] Verbose GET /Todos/Index Application:2025-05-12T23:42:06 PID[17108] Verbose POST /Todos/Create Application:2025-05-12T23:42:07 PID[17108] Verbose GET /Todos/Index
Выключение потоковой передачи журналов
Чтобы остановить службу потоковой передачи журналов, щелкните значок "Остановить мониторинг " в окне вывода .
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
- На странице Обзор веб-приложения на портале Azure щелкните ссылку myResourceGroup в разделе Группы ресурсов.
- На странице группы ресурсов убедитесь, что перечислены ресурсы, которые нужно удалить.
- Выберите "Удалить группу ресурсов", введите myResourceGroup в текстовом поле и нажмите кнопку "Удалить".
- Подтвердите еще раз, нажав кнопку "Удалить".
Связанный контент
- Настройка приложения ASP.NET для службы приложений Azure
- Краткое руководство: как начать работу с анализом затрат
Перейдите к следующему руководству, чтобы узнать, как использовать управляемое удостоверение для улучшения безопасности подключения к базе данных SQL Azure.