Sdílet prostřednictvím


Nasazení webové aplikace ASP.NET s SQL Server Compact pomocí sady Visual Studio nebo Visual Web Developer: Migrace na SQL Server – 10 ze 12

Tom Dykstra

Stažení úvodního projektu

V této sérii kurzů se dozvíte, jak nasadit (publikovat) projekt ASP.NET webové aplikace, který obsahuje databázi SQL Server Compact pomocí sady Visual Studio 2012 RC nebo Visual Studio Express 2012 RC pro web. Visual Studio 2010 můžete použít také při instalaci aktualizace publikování na webu. Úvod do série najdete v prvním kurzu v této sérii.

Kurz, který ukazuje funkce nasazení zavedené po verzi RC sady Visual Studio 2012, ukazuje, jak nasadit SQL Server edice jiné než SQL Server Compact, a ukazuje, jak nasadit do Azure App Service Web Apps, najdete v tématu nasazení webu ASP.NET pomocí sady Visual Studio.

Přehled

V tomto kurzu se dozvíte, jak migrovat z SQL Server Compact do SQL Server. Jedním z důvodů, proč to můžete chtít udělat, je využít SQL Server funkcí, které SQL Server Compact nepodporuje, jako jsou uložené procedury, triggery, zobrazení nebo replikace. Další informace o rozdílech mezi SQL Server Compact a SQL Server najdete v kurzu Nasazení SQL Server Compact.

SQL Server Express versus úplná SQL Server pro vývoj

Jakmile se rozhodnete upgradovat na SQL Server, můžete ve vývojových a testovacích prostředích použít SQL Server nebo SQL Server Express. Kromě rozdílů v podpoře nástrojů a funkcích databázového stroje existují rozdíly v implementacích zprostředkovatelů mezi SQL Server Compact a jinými verzemi SQL Server. Tyto rozdíly můžou způsobit, že stejný kód vygeneruje různé výsledky. Pokud se tedy rozhodnete zachovat SQL Server Compact jako vývojovou databázi, měli byste web před nasazením do produkčního prostředí důkladně otestovat v SQL Server nebo SQL Server Express v testovacím prostředí.

Na rozdíl od SQL Server Compact je SQL Server Express v podstatě stejný databázový stroj a používá stejného poskytovatele .NET jako úplné SQL Server. Při testování s SQL Server Express můžete mít jistotu, že dostanete stejné výsledky jako u SQL Server. Většinu stejných databázových nástrojů můžete používat s SQL Server Express, které můžete použít s SQL Server (výjimkou je SQL Server Profiler), a podporují další funkce SQL Server, jako jsou uložené procedury, zobrazení, triggery a replikace. (Na produkčním webu ale obvykle musíte použít úplné SQL Server. SQL Server Express lze spustit ve sdíleném hostitelském prostředí, ale nebyl k tomu navržen a mnoho poskytovatelů hostingu ho nepodporuje.)

Pokud používáte Sadu Visual Studio 2012, obvykle pro vývojové prostředí zvolíte SQL Server Express LocalDB, protože se ve výchozím nastavení instaluje v sadě Visual Studio. LocalDB ale ve službě IIS nefunguje, takže pro testovací prostředí musíte použít buď SQL Server, nebo SQL Server Express.

Kombinování databází a jejich oddělení

Aplikace Contoso University má dvě SQL Server Compact databáze: databázi členství (aspnet.sdf) a databázi aplikace (School.sdf). Při migraci můžete tyto databáze migrovat do dvou samostatných databází nebo do jedné databáze. Můžete je zkombinovat, abyste usnadnili propojení databáze mezi vaší aplikační databází a databází členství. Váš plán hostování může být také důvodem pro jejich kombinování. Poskytovatel hostingu může například účtovat vyšší poplatky za více databází nebo nemusí dokonce povolit více než jednu databázi. To je případ hostitelského účtu Cytanium Lite, který se používá pro tento kurz, který umožňuje pouze jednu SQL Server databázi.

V tomto kurzu provedete migraci dvou databází tímto způsobem:

  • Migrace na dvě databáze LocalDB ve vývojovém prostředí
  • Migrace do dvou SQL Server Express databází v testovacím prostředí
  • Migrace na jednu kombinovanou úplnou databázi SQL Server v produkčním prostředí

Připomenutí: Pokud se vám při procházení kurzu zobrazí chybová zpráva nebo něco nefunguje, nezapomeňte se podívat na stránku pro řešení potíží.

Instalace SQL Server Express

SQL Server Express se ve výchozím nastavení automaticky instaluje se sadou Visual Studio 2010, ale ve výchozím nastavení se nenainstaluje se sadou Visual Studio 2012. Pokud chcete nainstalovat SQL Server 2012 Express, klikněte na následující odkaz.

Zvolte ENU/x64/SQLEXPR_x64_ENU.exe nebo ENU/x86/SQLEXPR_x86_ENU.exea v průvodci instalací přijměte výchozí nastavení. Další informace o možnostech instalace najdete v tématu Instalace SQL Server 2012 v Průvodci instalací (instalační program).

Vytváření SQL Server Express databází pro testovací prostředí

Dalším krokem je vytvoření ASP.NET členství a školních databází.

V nabídce Zobrazení vyberte Průzkumník serveru (Průzkumník databáze ve Visual Web Developeru), klikněte pravým tlačítkem na Data Connections a vyberte Vytvořit novou databázi SQL Server.

Selecting_Create_New_SQL_Server_Database

V dialogovém okně Vytvořit novou databázi SQL Server zadejte ".\SQLExpress" do pole Název serveru a "aspnet-Test" do pole Název nové databáze a klikněte na OK.

Create_New_SQL_Server_Database_aspnet

Stejným postupem vytvořte novou databázi SQL Server Express School s názvem School-Test.

(K těmto názvům databází připojujete "Test", protože později vytvoříte další instanci každé databáze pro vývojové prostředí a musíte být schopni tyto dvě sady databází odlišit.)

Průzkumník serveru teď zobrazí dvě nové databáze.

New_databases_in_Server_Explorer

Vytvoření skriptu udělení pro nové databáze

Když aplikace běží ve službě IIS na vývojovém počítači, přistupuje k databázi pomocí přihlašovacích údajů výchozího fondu aplikací. Ve výchozím nastavení ale identita fondu aplikací nemá oprávnění k otevření databází. Abyste toto oprávnění udělili, musíte spustit skript. V této části vytvoříte skript, který později spustíte, abyste měli jistotu, že aplikace může databáze při spuštění ve službě IIS otevírat.

Ve složce SolutionFiles řešení, kterou jste vytvořili v kurzu Nasazení do produkčního prostředí , vytvořte nový soubor SQL s názvem Grant.sql. Zkopírujte do souboru následující příkazy SQL a pak soubor uložte a zavřete:

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO

Poznámka

Tento skript je navržený pro práci s SQL Server 2008 a s nastavením služby IIS ve Windows 7, jak je uvedeno v tomto kurzu. Pokud používáte jinou verzi SQL Server nebo Windows nebo pokud jste službu IIS na počítači nastavili jinak, můžou být potřeba změny tohoto skriptu. Další informace o skriptech SQL Server najdete v tématu SQL Server Books Online.

Poznámka

Poznámka k zabezpečení Tento skript poskytuje db_owner oprávnění uživateli, který přistupuje k databázi za běhu, což budete mít v produkčním prostředí. V některých scénářích můžete chtít určit uživatele, který má oprávnění k úplné aktualizaci schématu databáze pouze pro nasazení, a pro dobu běhu určit jiného uživatele, který má oprávnění pouze ke čtení a zápisu dat. Další informace najdete v tématu Kontrola automatických změn Web.config pro Migrace Code First v tématu Nasazení do služby IIS jako testovacího prostředí.

Konfigurace nasazení databáze pro testovací prostředí

Dále nakonfigurujete sadu Visual Studio tak, aby pro každou databázi dělala následující úlohy:

  • Vygenerujte skript SQL, který v cílové databázi vytvoří strukturu zdrojové databáze (tabulky, sloupce, omezení atd.).
  • Vygenerujte skript SQL, který vloží data zdrojové databáze do tabulek v cílové databázi.
  • Spusťte vygenerované skripty a skript Udělení, který jste vytvořili, v cílové databázi.

Otevřete okno Vlastnosti projektu a vyberte kartu Package/Publish SQL .

Ujistěte se, že je v rozevíracím seznamu Konfigurace vybraná možnost Aktivní (vydaná verze) nebo Vydaná verze.

Klikněte na Povolit tuto stránku.

Package_Publish_SQL_tab_Enable_This_page

Karta Package/Publish SQL je obvykle zakázaná, protože určuje starší metodu nasazení. Pro většinu scénářů byste měli nakonfigurovat nasazení databáze v průvodci publikováním webu . Migrace z SQL Server Compact na SQL Server nebo SQL Server Express je zvláštní případ, pro který je tato metoda dobrou volbou.

Klikněte na Importovat z Web.config.

Selecting_Import_from_Web.config

Visual Studio vyhledá připojovací řetězce v souboruWeb.config, najde jeden pro databázi členství a jeden pro školní databázi a přidá řádek odpovídající jednotlivým připojovací řetězec v tabulce Položky databáze. Nalezené připojovací řetězce jsou určené pro existující databáze SQL Server Compact a vaším dalším krokem bude konfigurace způsobu a umístění nasazení těchto databází.

Nastavení nasazení databáze zadáte v části Podrobnosti o položce databáze pod tabulkou Položky databáze . Nastavení zobrazená v části Podrobnosti o položce databáze se týkají vybraného řádku v tabulce Položky databáze , jak je znázorněno na následujícím obrázku.

Database_Entry_Details_section_of_Package_Publish_SQL_tab

Konfigurace nastavení nasazení pro databázi členství

Vyberte řádek DefaultConnection-Deployment v tabulce Položky databáze , abyste mohli nakonfigurovat nastavení, která platí pro databázi členství.

Do pole Připojovací řetězec pro cílovou databázi zadejte připojovací řetězec odkazující na novou databázi členství SQL Server Express. Potřebné připojovací řetězec získáte z Průzkumníka serveru. V Průzkumníku serveru rozbalte položku Data Connections a vyberte databázi aspnetTest a pak v okně Vlastnosti zkopírujte hodnotu Připojovací řetězec.

aspnet_connection_string_in_Server_Explorer

Stejný připojovací řetězec je reprodukován tady:

Data Source=.\SQLExpress;Initial Catalog=aspnet-Test;Integrated Security=True;Pooling=False

Zkopírujte a vložte tento připojovací řetězec do připojovacího řetězce pro cílovou databázi na kartě Package/Publish SQL.

Ujistěte se, že je vybraná možnost Vyžádat data nebo schéma z existující databáze . To je to, co způsobuje automatické generování a spouštění skriptů SQL v cílové databázi.

Připojovací řetězec pro hodnotu zdrojové databáze se extrahuje ze souboru Web.config a odkazuje na vývojovou SQL Server Compact databázi. Jedná se o zdrojovou databázi, která se použije k vygenerování skriptů, které se spustí později v cílové databázi. Vzhledem k tomu, že chcete nasadit produkční verzi databáze, změňte aspnet-Dev.sdf na aspnet-Prod.sdf.

Změňte možnosti skriptování databáze z pouze schématu na Schéma a data, protože chcete zkopírovat data (uživatelské účty a role) i strukturu databáze.

Pokud chcete nakonfigurovat nasazení pro spouštění dříve vytvořených skriptů pro udělování oprávnění, musíte je přidat do oddílu Databázové skripty . Klikněte na Přidat skript a v dialogovém okně Přidat skripty SQL přejděte do složky, do které jste uložili grantový skript (to je složka, která obsahuje soubor řešení). Vyberte soubor s názvem Grant.sql a klikněte na Otevřít.

Select_File_dialog_box_grant_script

Nastavení pro řádek DefaultConnection-Deployment v položkách databáze teď vypadá jako na následujícím obrázku:

Database_Entry_Details_for_DefaultConnection_Test

Konfigurace nastavení nasazení pro školní databázi

Dále vyberte řádek SchoolContext-Deployment v tabulce Položky databáze , abyste mohli nakonfigurovat nastavení nasazení pro školní databázi.

Můžete použít stejnou metodu, kterou jste použili dříve k získání připojovací řetězec pro novou databázi SQL Server Express. Zkopírujte tento připojovací řetězec do připojovacího řetězce pro cílovou databázi na kartě Balíček/Publikování SQL.

Data Source=.\SQLExpress;Initial Catalog=School-Test;Integrated Security=True;Pooling=False

Ujistěte se, že je vybraná možnost Vyžádat data nebo schéma z existující databáze .

Připojovací řetězec pro hodnotu zdrojové databáze se extrahuje ze souboru Web.config a odkazuje na vývojovou SQL Server Compact databázi. Pokud chcete nasadit produkční verzi databáze, změňte "School-Dev.sdf" na "School-Prod.sdf". (Nikdy jste nevytvořili soubor School-Prod.sdf ve složce App_Data, takže ho později zkopírujete z testovacího prostředí do složky App_Data ve složce projektu ContosoUniversity.)

Změňte Možnosti skriptování databáze na Schéma a data.

Chcete také spustit skript, který této databázi udělí oprávnění ke čtení a zápisu identitě fondu aplikací, takže přidejte soubor skriptu Grant.sql stejně jako pro databázi členství.

Až budete hotovi, bude nastavení řádku SchoolContext-Deployment v položkách databáze vypadat jako na následujícím obrázku:

Database_Entry_Details_for_SchoolContext_Test

Uložte změny na kartu Balíček/Publikování SQL .

Zkopírujte soubor School-Prod.sdf ze složky c:\inetpub\wwwroot\ContosoUniversity\App_Data do složky App_Data v projektu ContosoUniversity.

Určení režimu transakce pro skript udělení

Proces nasazení vygeneruje skripty, které nasadí schéma a data databáze. Ve výchozím nastavení se tyto skripty spouští v transakci. Vlastní skripty (například skripty pro udělování oprávnění) se však ve výchozím nastavení v transakci nespustí. Pokud proces nasazení kombinuje režimy transakcí, může dojít k chybě časového limitu při spouštění skriptů během nasazování. V této části upravíte soubor projektu, abyste mohli nakonfigurovat vlastní skripty tak, aby se spouštěly v transakci.

V Průzkumník řešení klikněte pravým tlačítkem na projekt ContosoUniversity a vyberte Uvolnit projekt.

Unload_Project_in_Solution_Explorer

Potom znovu klikněte pravým tlačítkem na projekt a vyberte Upravit ContosoUniversity.csproj.

Edit_Project_in_Solution_Explorer

Editor sady Visual Studio zobrazí obsah XML souboru projektu. Všimněte si, že existuje několik PropertyGroup prvků. (Na obrázku PropertyGroup byl obsah prvků vynechán.)

Okno editoru souborů projektu

První, který nemá žádný Condition atribut, se týká nastavení, která platí bez ohledu na konfiguraci sestavení. Jeden PropertyGroup prvek se vztahuje pouze na konfiguraci sestavení ladění (všimněte si atributu Condition ), jeden se vztahuje pouze na konfiguraci sestavení vydané verze a jeden se vztahuje pouze na konfiguraci testovacího sestavení. V elementu PropertyGroup pro konfiguraci sestavení vydané verze uvidíte PublishDatabaseSettings element, který obsahuje nastavení, která jste zadali na kartě Balíček/Publikování SQL . Existuje prvek Object , který odpovídá každému skriptu udělení oprávnění, které jste zadali (všimněte si dvou instancí "Grant.sql"). Ve výchozím nastavení Transacted je Falseatribut elementu Source pro každý skript udělení oprávnění .

Transacted_false

Změňte hodnotu atributu Transacted elementu Source na True.

Transacted_true

Uložte a zavřete soubor projektu a potom klikněte pravým tlačítkem na projekt v Průzkumník řešení a vyberte Znovu načíst projekt.

Reload_project

Nastavení Web.Config transformací pro připojovací řetězce

Připojovací řetězce pro nové databáze SQL Express, které jste zadali na kartě Package/Publish SQL , se v nasazení webu používají jenom k aktualizaci cílové databáze během nasazení. Stále musíte nastavit Web.config transformace tak, aby připojovací řetězce v nasazené Web.config souboru odkazovaly na nové databáze SQL Server Express. (Když použijete kartu Package/Publish SQL , nemůžete v profilu publikování nakonfigurovat připojovací řetězce.)

Otevřete Web.Test.config a nahraďte connectionStrings element elementem v následujícím příkladu connectionStrings . (Ujistěte se, že zkopírujete pouze element connectionStrings, nikoli okolní kód, který je zde zobrazen pro poskytnutí kontextu.)

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=.\SQLExpress;Initial Catalog=aspnet-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True" 
         providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    <add name="SchoolContext" 
         connectionString="Data Source=.\SQLExpress;Initial Catalog=School-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True" 
         providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <!-- appSettings element, comments, and system.web element -->
</configuration>

Tento kód způsobí nahrazení connectionString atributů a providerName každého add elementu v nasazené Web.config souboru. Tyto připojovací řetězce nejsou identické s těmi, které jste zadali na kartě Package/Publish SQL . Bylo do nich přidáno nastavení MultipleActiveResultSets=True, protože se vyžaduje pro Entity Framework a Univerzální zprostředkovatele.

Instalace SQL Server Compact

Balíček NuGet SqlServerCompact poskytuje SQL Server Compact sestavení databázového stroje pro aplikaci Contoso University. Teď to ale není aplikace, ale nasazení webu, které musí být schopné číst databáze SQL Server Compact, aby bylo možné vytvářet skripty, které se budou spouštět v databázích SQL Server. Pokud chcete povolit nasazení webu pro čtení databází SQL Server Compact, nainstalujte SQL Server Compact do vývojového počítače pomocí následujícího odkazu: Microsoft SQL Server Compact 4.0 SP1.

Nasazení do testovacího prostředí

Pokud chcete publikovat do testovacího prostředí, musíte vytvořit profil publikování, který je nakonfigurovaný tak, aby pro publikování databáze místo nastavení databáze publikování používal kartu Balíček/Publikování SQL .

Nejprve odstraňte existující testovací profil.

V Průzkumník řešení klikněte pravým tlačítkem na projekt ContosoUniversity a klikněte na Publikovat.

Vyberte kartu Profil .

Klikněte na Spravovat profily.

Vyberte Test, klikněte na Odebrat a potom klikněte na Zavřít.

Zavřete průvodce publikováním webu a uložte tuto změnu.

Dále vytvořte nový testovací profil a použijte ho k publikování projektu.

V Průzkumník řešení klikněte pravým tlačítkem na projekt ContosoUniversity a klikněte na Publikovat.

Vyberte kartu Profil .

V rozevíracím seznamu vyberte <Nový> a jako název profilu zadejte Test.

Do pole Adresa URL služby zadejte localhost.

Do pole Web/aplikace zadejte Výchozí web/ContosoUniversity.

Do pole Cílová adresa URL zadejte http://localhost/ContosoUniversity/.

Klikněte na Next (Další).

Karta Nastavení vás upozorní, že byla nakonfigurována karta Package/Publish SQL( Balíček/Publikování SQL ) a dává vám možnost je přepsat kliknutím na povolit vylepšení publikování nové databáze. Pro toto nasazení nechcete přepsat nastavení karty Package/Publish SQL , takže stačí kliknout na Další.

Publish_Web_wizard_Settings_tab_Migrate

Zpráva na kartě Náhled uvádí, že k publikování nejsou vybrány žádné databáze, ale to znamená, že publikování databáze není v profilu publikování nakonfigurované.

Klikněte na Publikovat.

Publish_Web_wizard_Preview_tab_Migrate

Visual Studio nasadí aplikaci a otevře prohlížeč na domovské stránce webu v testovacím prostředí. Spusťte stránku Instruktoři, abyste viděli, že se zobrazují stejná data, která jste viděli dříve. Spusťte stránku Přidat studenty , přidejte nového studenta a zobrazte nového studenta na stránce Studenti . Tím se ověří, že můžete databázi aktualizovat. Vyberte stránku Aktualizovat kredity (budete se muset přihlásit) a ověřte, že databáze členství byla nasazena a že k ní máte přístup.

Vytvoření databáze SQL Server pro produkční prostředí

Teď, když jste nasadili do testovacího prostředí, jste připraveni nastavit nasazení do produkčního prostředí. Začnete stejně jako v testovacím prostředí tím, že vytvoříte databázi, do které se nasadí. Jak si vzpomínáte z přehledu, plán hostování Cytanium Lite umožňuje pouze jednu SQL Server databázi, takže nastavíte pouze jednu databázi, ne dvě. Všechny tabulky a data z databází členství a školních SQL Server Compact se nasadí do jedné SQL Server databáze v produkčním prostředí.

Přejděte na ovládací panel Cytanium na adrese http://panel.cytanium.com. Podržte myš nad databázemi a klikněte na SQL Server 2008.

Selecting_Databases_in_Control_Panel

Na stránce SQL Server 2008 klikněte na Vytvořit databázi.

Selecting_Create_Database

Pojmenujte databázi "Škola" a klikněte na Uložit. (Stránka automaticky přidá předponu "contosou", takže efektivní název bude "contosouSchool".)

Naming_the_database

Na stejné stránce klikněte na Vytvořit uživatele. Na serverech Cytanium místo použití integrovaného zabezpečení Windows a otevření databáze identitou fondu aplikací vytvoříte uživatele, který má oprávnění k otevření vaší databáze. Přihlašovací údaje uživatele přidáte do připojovacích řetězců, které jsou v produkčním Web.config souboru. V tomto kroku vytvoříte tyto přihlašovací údaje.

Creating_a_database_user

Vyplňte požadovaná pole na stránce Vlastnosti uživatele SQL :

  • Jako název zadejte ContosoUniversityUser.
  • Zadejte heslo.
  • Jako výchozí databázi vyberte contosouSchool .
  • Zaškrtněte políčko contosouSchool .

SQL_User_Properties_page

Konfigurace nasazení databáze pro produkční prostředí

Teď jste připraveni nastavit nasazení databáze na kartě Balíček/Publikování SQL , stejně jako předtím v testovacím prostředí.

Otevřete okno Vlastnosti projektu, vyberte kartu Zabalit/publikovat SQL a ujistěte se, že je v rozevíracím seznamu Konfigurace vybraná možnost Aktivní (vydaná verze) nebo Vydaná.

Když konfigurujete nastavení nasazení pro každou databázi, hlavní rozdíl mezi tím, co děláte v produkčním a testovacím prostředí, spočívá v konfiguraci připojovacích řetězců. Pro testovací prostředí jste zadali různé připojovací řetězce cílové databáze, ale pro produkční prostředí bude cíl připojovací řetězec pro obě databáze stejný. Je to proto, že obě databáze nasazujete do jedné databáze v produkčním prostředí.

Konfigurace nastavení nasazení pro databázi členství

Pokud chcete nakonfigurovat nastavení, která platí pro databázi členství, vyberte v tabulce Položky databáze řádek DefaultConnection-Deployment.

Do pole Připojovací řetězec pro cílovou databázi zadejte připojovací řetězec odkazující na novou produkční SQL Server databázi, kterou jste právě vytvořili. Připojovací řetězec můžete získat z uvítacího e-mailu. Relevantní část e-mailu obsahuje následující ukázkové připojovací řetězec:

Data Source=vserver01.cytanium.com;Initial Catalog={myDataBase};User Id={myUsername};Password={myPassword};

Po nahrazení tří proměnných bude připojovací řetězec, které potřebujete, vypadat jako v tomto příkladu:

Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Password;

Zkopírujte a vložte tuto připojovací řetězec do připojovacího řetězce pro cílovou databázi na kartě Balíček/Publikování SQL.

Ujistěte se, že je stále vybraná možnost Vyžádat data nebo schéma z existující databáze a že možnosti skriptování databáze jsou stále schématu a dat.

V poli Databázové skripty zrušte zaškrtnutí políčka vedle Grant.sql skriptu.

Disable_Grant_script

Konfigurace nastavení nasazení pro školní databázi

Dále vyberte řádek SchoolContext-Deployment v tabulce Položky databáze , abyste mohli nakonfigurovat nastavení školní databáze.

Zkopírujte stejný připojovací řetězec do připojovacího řetězce pro cílovou databázi, který jste zkopírovali do daného pole pro databázi členství.

Ujistěte se, že je stále vybraná možnost Vyžádat data nebo schéma z existující databáze a že možnosti skriptování databáze jsou stále schématu a dat.

V poli Databázové skripty zrušte zaškrtnutí políčka vedle Grant.sql skriptu.

Uložte změny na kartu Balíček/Publikování SQL .

Nastavení Web.Config transformací pro připojovací řetězce k produkčním databázím

Dále nastavíte Web.config transformace tak, aby připojovací řetězce v nasazené Web.config souboru odkazovaly na novou produkční databázi. Připojovací řetězec, který jste zadali na kartě Zabalit/publikovat SQL pro nasazení webu, je stejný jako ten, který aplikace potřebuje použít, s výjimkou přidání MultipleResultSets možnosti .

Otevřete Web.Production.config a nahraďte connectionStrings element elementem connectionStrings , který vypadá jako v následujícím příkladu. (Zkopírujte connectionStrings pouze element, ne okolní značky, které jsou k dispozici pro zobrazení kontextu.)

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Password;MultipleActiveResultSets=True" 
         providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
    <add name="SchoolContext" 
         connectionString="Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Password;MultipleActiveResultSets=True" 
         providerName="System.Data.SqlClient"
         xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <!-- appSettings element, comments, and system.web element -->
</configuration>

Někdy se zobrazí doporučení, že máte připojovací řetězce v souboruWeb.config vždy šifrovat. To může být vhodné, pokud jste nasazovali na servery ve vlastní firemní síti. Když ale nasazujete do sdíleného hostitelského prostředí, důvěřujete postupům zabezpečení poskytovatele hostingu a není nutné ani praktické šifrovat připojovací řetězce.

Nasazení do produkčního prostředí

Teď jste připraveni k nasazení do produkčního prostředí. Nasazení webu přečte SQL Server Compact databáze ve složce App_Data vašeho projektu a znovu vytvoří všechny jejich tabulky a data v produkční SQL Server databázi. Pokud chcete publikovat pomocí nastavení karty Zabalit/publikovat web , musíte vytvořit nový profil publikování pro produkční prostředí.

Nejprve odstraňte existující profil Production stejně jako dříve testovací profil.

V Průzkumník řešení klikněte pravým tlačítkem na projekt ContosoUniversity a klikněte na Publikovat.

Vyberte kartu Profil .

Klikněte na Spravovat profily.

Vyberte Production (Produkční), klikněte na Remove (Odebrat) a potom klikněte na Close (Zavřít).

Zavřete průvodce publikováním webu a uložte tuto změnu.

Dále vytvořte nový profil Production a použijte ho k publikování projektu.

V Průzkumník řešení klikněte pravým tlačítkem na projekt ContosoUniversity a klikněte na Publikovat.

Vyberte kartu Profil .

Klikněte na Importovat a vyberte soubor .publishsettings, který jste si stáhli dříve.

Na kartě Připojení změňte Cílovou adresu URL na správnou dočasnou adresu URL, která je http://contosouniversity.com.vserver01.cytanium.comv tomto příkladu .

Přejmenujte profil na Produkční. (Vyberte kartu Profil a klikněte na Spravovat profily .

Zavřete průvodce publikováním webu a uložte provedené změny.

Ve skutečné aplikaci, ve které se databáze aktualizovala v produkčním prostředí, byste před publikováním udělali dva další kroky:

  1. Nahrajte app_offline.htm, jak je znázorněno v kurzu Nasazení do produkčního prostředí .
  2. Pomocí funkce Správce souborů ovládacího panelu Cytanium zkopírujte soubory aspnet-Prod.sdf a School-Prod.sdf z produkční lokality do App_Data složky projektu ContosoUniversity. Tím zajistíte, že data, která nasazujete do nové databáze SQL Server, budou obsahovat nejnovější aktualizace provedené produkčním webem.

Na panelu nástrojů Publikovat na webu jedním kliknutím se ujistěte, že je vybraný profil Produkce , a pak klikněte na Publikovat.

Pokud jste před publikováním nahráliapp_offline.htm , musíte k odstranění app_offline použít nástroj Správce souborů v ovládacím panelu Cytanium .htm před testem. Můžete také současně odstranit soubory .sdf ze složky App_Data .

Teď můžete otevřít prohlížeč a přejít na adresu URL vašeho veřejného webu a otestovat aplikaci stejným způsobem jako po nasazení do testovacího prostředí.

Přechod na SQL Server Express LocalDB ve vývoji

Jak bylo vysvětleno v přehledu, při vývoji je obecně nejlepší použít stejný databázový stroj, který používáte v testování a v produkčním prostředí. (Nezapomeňte, že výhodou použití SQL Server Express při vývoji je, že databáze bude fungovat stejně ve vašem vývojovém, testovacím a produkčním prostředí.) V této části nastavíte projekt ContosoUniversity tak, aby při spuštění aplikace ze sady Visual Studio používal SQL Server Express LocalDB.

Nejjednodušší způsob, jak tuto migraci provést, je nechat Code First a členský systém vytvořit obě nové vývojové databáze za vás. Použití této metody k migraci vyžaduje tři kroky:

  1. Změňte připojovací řetězce a zadejte nové databáze SQL Express LocalDB.
  2. Spuštěním nástroje pro správu webu vytvořte uživatele správce. Tím se vytvoří databáze členství.
  3. Pomocí příkazu Migrace Code First update-database vytvořte a vytvořte databázi aplikace.

Aktualizace připojovacích řetězců v souboru Web.config

Otevřete souborWeb.config a nahraďte connectionStrings element následujícím kódem:

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Dev.mdf;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
  <add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\School-Dev.mdf;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
</connectionStrings>

Vytvoření databáze členství

V Průzkumník řešení vyberte projekt ContosoUniversity a potom v nabídce Projekt klikněte na ASP.NET Konfigurace.

Vyberte kartu Zabezpečení.

Klikněte na Vytvořit nebo spravovat role a pak vytvořte roli správce .

Vraťte se na kartu Zabezpečení.

Klikněte na Vytvořit uživatele, zaškrtněte políčko Správce a vytvořte uživatele admin.

Zavřete nástroj pro správu webu.

Vytvoření školní databáze

Otevřete okno konzoly Správce balíčků.

V rozevíracím seznamu Výchozí projekt vyberte projekt ContosoUniversity.DAL.

Zadejte následující příkaz:

update-database

Migrace Code First použije počáteční migraci, která vytvoří databázi a pak použije migraci AddBirthDate, spustí metodu Seed.

Spusťte web stisknutím control-F5. Stejně jako u testovacího a produkčního prostředí spusťte stránku Přidat studenty , přidejte nového studenta a zobrazte nového studenta na stránce Studenti . Tím se ověří, že se školní databáze vytvořila a inicializovala a že k ní máte přístup pro čtení a zápis.

Vyberte stránku Aktualizovat kredity a přihlaste se, abyste ověřili, že databáze členství byla nasazená a že k ní máte přístup. Pokud jste uživatelské účty nemigrovali, vytvořte účet správce a pak vyberte stránku Aktualizovat kredity , abyste ověřili, že funguje.

Čištění SQL Server Compact souborů

Už nepotřebujete soubory a balíčky NuGet, které byly součástí podpory SQL Server Compact. Pokud chcete (tento krok není nutný), můžete vyčistit nepotřebné soubory a odkazy.

V Průzkumník řešení odstraňte soubory .sdf ze složky App_Data a složky amd64 a x86 ze složky bin.

V Průzkumník řešení klikněte pravým tlačítkem na řešení (ne na jeden z projektů) a pak klikněte na Spravovat balíčky NuGet pro řešení.

V levém podokně dialogového okna Spravovat balíčky NuGet vyberte Nainstalované balíčky.

Vyberte balíček EntityFramework.SqlServerCompact a klikněte na Spravovat.

V dialogovém okně Vybrat projekty jsou vybrány oba projekty. Pokud chcete odinstalovat balíček v obou projektech, zrušte zaškrtnutí obou políček a klikněte na OK.

V dialogovém okně s dotazem, jestli chcete také odinstalovat závislé balíčky, klikněte na Ne. Jedním z nich je balíček Entity Framework, který musíte zachovat.

Stejným postupem odinstalujte balíček SqlServerCompact . (Balíčky je nutné odinstalovat v tomto pořadí, protože balíček EntityFramework.SqlServerCompact závisí na balíčku SqlServerCompact .)

Teď jste úspěšně migrovali na SQL Server Express a úplné SQL Server. V dalším kurzu provedete další změnu databáze a dozvíte se, jak nasadit změny databáze, když vaše testovací a produkční databáze používají SQL Server Express a úplné SQL Server.