Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
С момента написания этой статьи, поставщики членства ASP.NET были заменены на ASP.NET Identity. Настоятельно рекомендуется обновлять приложения для использования платформы ASP.NET Identity вместо поставщиков членства, которые использовались на момент написания этой статьи. ASP.NET Identity имеет ряд преимуществ по сравнению с системой членства ASP.NET, в том числе:
- Улучшенная производительность
- Улучшенная расширяемость и возможность тестирования
- Поддержка OAuth, OpenID Connect и двухфакторной проверки подлинности
- Поддержка идентификации на основе утверждений
- Улучшение взаимодействия с ASP.Net Core
В этом разделе описываются основные аспекты и проблемы, которые необходимо преодолеть при подготовке баз данных служб приложений ASP.NET (более часто называемых базами данных членства) в тестовых, промежуточных или рабочих средах. В нем также описываются подходы, которые можно использовать для удовлетворения этих проблем.
Этот раздел является частью серии учебников, основанных на требованиях к развертыванию предприятия вымышленной компании Fabrikam, Inc. В этой серии учебников используется пример решения — решение Contact Manager— для представления веб-приложения с реалистичным уровнем сложности, включая приложение MVC 3 ASP.NET MVC 3, службу Windows Communication Foundation (WCF) и проект базы данных.
Метод развертывания в центре этих учебников основан на подходе к разделенному файлу проекта, описанному в разделе "Общие сведения о файле проекта", в котором процесс сборки управляется двумя файлами проекта — одним из них содержит инструкции по сборке, которые применяются к каждой целевой среде, а также один из них содержит параметры сборки и развертывания для конкретной среды. Во время сборки файл проекта для конкретной среды объединяется в файл проекта, не зависящем от среды, чтобы сформировать полный набор инструкций по сборке.
Какие проблемы возникают при развертывании базы данных членства?
В большинстве случаев при разработке стратегии развертывания для базы данных сначала необходимо учитывать, какие данные необходимо развернуть. В среде разработки или тестирования может потребоваться развернуть данные учетной записи пользователя, чтобы упростить быстрое и простое тестирование. В промежуточной или производственной среде едва ли вы захотите публиковать данные учетной записи пользователя.
К сожалению, базы данных членства ASP.NET представляют некоторые специфические трудности, что делает это решение гораздо более сложным.
- Развертывание только по схеме оставляет базу данных членства в неработоспособном состоянии. Это связано с тем, что база данных членства включает некоторые данные конфигурации (в таблице aspnet_SchemaVersions ), необходимые для работы базы данных. Таким образом, если вы выполняете развертывание только схемы вашей базы данных учетных записей, чтобы исключить данные учетной записи пользователя, необходимо запустить скрипт после развертывания, чтобы внести необходимые данные конфигурации.
- В зависимости от того, как настроена база данных членства, поставщик членства может использовать ключ компьютера для шифрования паролей и хранения их в базе данных. В этом случае все данные учетной записи пользователя, развернутые с помощью базы данных, становятся непригодными для использования на целевом сервере. По этой причине развертывание данных учетной записи пользователя не поддерживается.
Выбор стратегии членства в базе данных
Используйте эти рекомендации при выборе способа подготовки базы данных членства в среде корпоративного сервера:
- По возможности не развертывайте базы данных членства. Вместо этого создайте базу данных членства вручную на целевом сервере базы данных. Если вы не настроили схему базы данных членства, можно просто создать новую в месте назначения с помощью средства регистрации SQL Server ASP.NET (aspnet_regsql.exe).
- Если у вас нет другого выбора, кроме как развернуть базу данных членства, например, если вы внесли обширные изменения в схему базы данных, следует выполнить развертывание базы данных членства с использованием только схемы, чтобы исключить данные учетных записей пользователей, а затем запустить скрипт после развертывания, чтобы добавить необходимые данные конфигурации. Общие рекомендации по этим подходам см. в статье "Практическое руководство. Развертывание базы данных членства ASP.NET без включения учетных записей пользователей".
Важно помнить, что схема базы данных членства, скорее всего, будет довольно статической. Даже если вы настроили базу данных членства, маловероятно, что вам придется регулярно обновлять схему— это не изменится с той же частотой, что и код в веб-приложении или проекте базы данных. Таким образом, не нужно включать базу данных членства в автоматизированные или одношаговые процессы развертывания.
Использование VSDBCMD для обновления схемы базы данных членства
Если вы изменяете структуру базы данных членства после первого развертывания, возможно, вам не нужно использовать средство веб-развертывания служб IIS (веб-развертывание) для повторного развертывания базы данных. Функция развертывания базы данных в Web Deploy не включает в себя возможность выполнения дифференциальных обновлений целевой базы данных. Вместо этого Web Deploy необходимо удалить и заново создать базу данных. Это означает, что вы теряете все существующие данные учетной записи пользователя, что обычно нежелательно в промежуточных или рабочих средах.
Альтернативой является использование служебной программы VSDBCMD для обновления схемы целевой базы данных. VSDBCMD включает две важные возможности. Во-первых, он может импортировать схему существующей базы данных в dbschema-файл. Во-вторых, он может развернуть файл .dbschema в существующей базе данных в качестве разностного обновления, что означает, что он вносит только изменения, необходимые для приведения целевой базы данных в актуальное состояние, и вы не теряете никаких данных.
Эти высокоуровневые шаги можно использовать для обновления схемы базы данных членства:
- Используйте действие VSDBCMD Импорт для создания DBSchema-файла для базы данных-источника членства. Эта процедура описана в разделе "Практическое руководство. Импорт схемы из командной строки".
- Используйте действие Deploy команды VSDBCMD для развертывания файла .dbschema в базу данных назначения членства. Эта процедура описана в справочнике командной строки по VSDBCMD.EXE (развертывание и импорт схемы).
Conclusion
В этом разделе описаны некоторые проблемы, которые могут возникнуть при необходимости подготовки ASP.NET баз данных членства в различных целевых средах. В частности, объясняется, почему развертывания, содержащие только схему, оставят базу данных членства в неработоспособном состоянии и почему развертывание данных учетных записей пользователей не поддерживается. В этом разделе также представлено руководство по подготовке, развертыванию и обновлению баз данных членства в разных сценариях.
Дальнейшее чтение
Дополнительные инструкции и примеры использования VSDBCMD см. в справочнике по командной строке для VSDBCMD.EXE (развертывание и импорт схемы) и Как импортировать схему из командной строки. Дополнительные сведения об использовании aspnet_regsql.exe для создания баз данных членства см. в средстве регистрации SQL Server ASP.NET (aspnet_regsql.exe). Дополнительные общие рекомендации по развертыванию баз данных членства см. в статье "Практическое руководство. Развертывание базы данных членства ASP.NET без включения учетных записей пользователей".