Wdrażanie baz danych członkostwa w środowiskach przedsiębiorstw

Autor Jason Lewandowski

Pobierz plik PDF

W tym temacie wyjaśniono kluczowe zagadnienia i wyzwania, które należy wziąć pod uwagę podczas udostępniania baz danych usług aplikacji ASP.NET (nazywanych najczęściej bazami danych członkostwa) w środowiskach testowych, przejściowych lub produkcyjnych. Opisano w nim również podejścia, których można użyć w celu spełnienia tych wyzwań.

Ten temat stanowi część szeregu samouczków opartych na wymaganiach dotyczących wdrażania w przedsiębiorstwie fikcyjnej firmy o nazwie Fabrikam, Inc. W tej serii samouczków jest stosowane—przykładowe rozwiązanie—do reprezentowania aplikacji sieci Web, które marealistyczny poziom złożoności, w tym aplikacji ASP.NET MVC 3, usługi Windows Communication Foundation (WCF) i projektu bazy danych.

Metoda wdrażania w tym samouczku jest oparta na rozłożeniu pliku projektu dzielonego opisanym w artykule Omówienie pliku projektu, w którym proces kompilacji jest kontrolowany przez dwa pliki—projektu, zawierający instrukcje kompilacji, które mają zastosowanie do każdego środowiska docelowego, oraz jeden zawierający ustawienia kompilacji i wdrożenia specyficznego dla środowiska. W czasie kompilacji plik projektu specyficzny dla środowiska jest scalany z plikiem projektu Environment-niezależny od w celu utworzenia kompletnego zestawu instrukcji kompilacji.

Jakie problemy występują podczas wdrażania bazy danych członkostwa?

W większości przypadków podczas opracowywania strategii wdrażania bazy danych najpierw należy rozważyć, jakie dane mają zostać wdrożone. W środowisku deweloperskim lub testowym można wdrożyć dane konta użytkownika w celu ułatwienia szybkiego i łatwego testowania. W środowisku przejściowym lub produkcyjnym bardzo mało prawdopodobne jest, że chcesz wdrożyć dane konta użytkownika.

Niestety, ASP.NET bazy danych członkostwa zawierają pewne konkretne wyzwania, które czynią tę decyzję znacznie bardziej skomplikowaną:

  • Wdrożenie tylko do schematu spowoduje pozostawienie bazy danych członkostwa w stanie nieoperacyjnym. Wynika to z faktu, że baza danych członkostwa zawiera dane konfiguracji (w tabeli aspnet_SchemaVersions ), które są wymagane do działania bazy danych. W związku z tym w przypadku wykonywania wdrożenia tylko schematu bazy danych członkostwa w celu wykluczania danych konta użytkownika należy uruchomić skrypt po wdrożeniu, aby dodać podstawowe dane konfiguracyjne.
  • W zależności od sposobu skonfigurowania bazy danych członkostwa dostawca członkostwa może użyć klucza komputera do szyfrowania haseł i przechowywania ich w bazie danych. W takim przypadku wszystkie dane konta użytkownika wdrażane za pomocą bazy danych staną się niedostępne na serwerze docelowym. Z tego powodu wdrażanie danych konta użytkownika nie jest obsługiwanym scenariuszem.

Wybieranie strategii bazy danych członkostwa

Te wskazówki należy stosować podczas wybierania sposobu aprowizacji bazy danych członkostwa w środowisku serwera przedsiębiorstwa:

  • Gdy jest to możliwe, nie należy wdrażać baz danych członkostwa. Zamiast tego Utwórz bazę danych członkostwa ręcznie na docelowym serwerze bazy danych. Jeśli schemat bazy danych członkostwa nie został dostosowany, można po prostu utworzyć nowe miejsce w miejscu docelowym przy użyciu narzędzia rejestracji SQL Server ASP.NET (aspnet_regsql. exe).
  • Jeśli nie ma opcji, ale do wdrożenia bazy danych—członkostwa na przykład, jeśli wprowadzono liczne modyfikacje schematu—bazy danych, należy wykonać wdrożenie tylko do schematu bazy danych członkostwa, aby wykluczyć dane konta użytkownika, a następnie uruchomić skrypt po wdrożeniu w celu dodania wymaganych danych konfiguracyjnych. Wskazówki dotyczące tych metod można znaleźć w następujących tematach: Wdrażanie bazy danych ASP.NET Membership bez uwzględnienia kont użytkowników.

Należy pamiętać, że schemat bazy danych członkostwa może być dość statyczny. Nawet jeśli dostosowano bazę danych członkostwa, nie jest mało prawdopodobne, że należy zaktualizować schemat regularnie,—ale nie będzie on zmieniany z taką samą częstotliwością jak kod w aplikacji sieci Web lub projekt bazy danych. W związku z tym nie trzeba uwzględniać bazy danych członkostwa w żadnym zautomatyzowanym lub jednoetapowym procesie wdrażania.

Aktualizowanie schematu bazy danych członkostwa przy użyciu VSDBCMD

Jeśli zmodyfikujesz strukturę bazy danych członkostwa po pierwszym wdrożeniu, możesz nie chcieć używać narzędzia do wdrażania w sieci Web (Web Deploy) Internet Information Services (IIS), aby ponownie wdrożyć bazę danych. Funkcja wdrażania bazy danych w Web Deploy nie obejmuje możliwości wprowadzania różnicowych aktualizacji do docelowej bazy danych—, Web Deploy musi porzucić i ponownie utworzyć bazę danych. Oznacza to utratę wszelkich istniejących danych konta użytkownika, które zwykle są niepożądane w środowisku przejściowym lub produkcyjnym.

Alternatywą jest użycie narzędzia VSDBCMD w celu zaktualizowania schematu docelowej bazy danych. VSDBCMD obejmuje dwie ważne funkcje. Najpierw można zaimportować schemat istniejącej bazy danych do pliku. DbSchema. Następnie może wdrożyć plik. DbSchema w istniejącej bazie danych jako aktualizację różnicową, co oznacza, że tylko zmiany wymagane do przeprowadzenia aktualnej docelowej bazy danych i nie zostaną utracone żadne dane.

Aby zaktualizować schemat bazy danych członkostwa, można użyć tych kroków wysokiego poziomu:

  1. Użyj akcji importu VSDBCMD, aby wygenerować plik. DbSchema dla źródłowej bazy danych członkostwa. Ta procedura została opisana w artykule jak: importowanie schematu z wiersza polecenia.
  2. Użyj akcji Wdróż VSDBCMD, aby wdrożyć plik. DbSchema w docelowej bazie danych członkostwa. Ta procedura jest opisana w wierszu polecenia Reference for VSDBCMD. EXE (wdrożenie i importowanie schematu).

Podsumowanie

W tym temacie opisano niektóre problemy, które mogą wystąpić w przypadku konieczności aprowizacji baz danych członkostwa ASP.NET w różnych środowiskach docelowych. W szczególności wyjaśniono, dlaczego wdrożenia tylko do schematu pozostawiają bazę danych członkostwa w stanie nieoperacyjnym i dlaczego wdrażanie danych konta użytkownika nie jest obsługiwane. Temat zawiera również wskazówki dotyczące udostępniania, wdrażania i aktualizowania baz danych członkostwa w różnych scenariuszach.

Dalsze informacje

Aby uzyskać więcej wskazówek i przykłady korzystania z VSDBCMD, zobacz informacje dotyczące wiersza polecenia dla VSDBCMD. EXE (wdrożenie i importowanie schematu) i instrukcje: importowanie schematu z wiersza polecenia. Aby uzyskać więcej informacji na temat używania ASPNET_regsql. exe do tworzenia baz danych członkostwa, zobacz ASP.NET SQL Server Registration Tool (aspnet_regsql. exe). Aby uzyskać ogólne wskazówki dotyczące wdrażania baz danych członkostwa, zobacz How to: Deploy the ASP.NET Membership Database bez uwzględnienia kont użytkowników.