Nasazení webové aplikace ASP.NET s SQL Server Compact pomocí sady Visual Studio nebo Visual Web Developer: Nasazení aktualizace databáze SQL Server – 11 z 12
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 vydání sady Visual Studio 2012 ve verzi RC, ukazuje, jak nasadit SQL Server edice jiné než SQL Server Compact, a ukazuje, jak nasadit na weby Windows Azure, najdete v tématu nasazení webu ASP.NET pomocí sady Visual Studio.
Přehled
V tomto kurzu se dozvíte, jak nasadit aktualizaci databáze do úplné databáze SQL Server. Vzhledem k tomu, že Migrace Code First provádí veškerou práci při aktualizaci databáze, je proces téměř stejný jako v případě SQL Server Compact v kurzu Nasazení aktualizace databáze.
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íží.
Přidání nového sloupce do tabulky
V této části kurzu provedete změnu databáze a odpovídající změny kódu a pak je otestujete v sadě Visual Studio, abyste je mohli nasadit do testovacího a produkčního prostředí. Změna zahrnuje přidání OfficeHours
sloupce do Instructor
entity a zobrazení nových informací na webové stránce Instruktorů .
V projektu ContosoUniversity.DAL otevřete Instructor.cs a přidejte mezi HireDate
vlastnosti a Courses
následující vlastnost:
[MaxLength(50)]
public string OfficeHours { get; set; }
Aktualizujte třídu inicializátoru tak, aby nový sloupec zasadí testovacími daty. Otevřete Migrations\Configuration.cs a nahraďte blok kódu, který začíná var instructors = new List<Instructor>
následujícím blokem kódu, který obsahuje nový sloupec:
var instructors = new List<Instructor>
{
new Instructor { FirstMidName = "Kim", LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), BirthDate = DateTime.Parse("1918-08-12"), OfficeHours = "8-9AM, 4-5PM", OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
new Instructor { FirstMidName = "Fadi", LastName = "Fakhouri", HireDate = DateTime.Parse("2002-07-06"), BirthDate = DateTime.Parse("1960-03-15"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
new Instructor { FirstMidName = "Roger", LastName = "Harui", HireDate = DateTime.Parse("1998-07-01"), BirthDate = DateTime.Parse("1970-01-11"), OfficeHours = "6AM-6PM", OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
new Instructor { FirstMidName = "Candace", LastName = "Kapoor", HireDate = DateTime.Parse("2001-01-15"), BirthDate = DateTime.Parse("1975-04-11") },
new Instructor { FirstMidName = "Roger", LastName = "Zheng", HireDate = DateTime.Parse("2004-02-12"), BirthDate = DateTime.Parse("1957-10-12"), OfficeHours = "By appointment only" }
};
V projektu ContosoUniversity otevřete Instructors.aspx a přidejte nové pole šablony pro pracovní hodiny těsně před uzavírací </Columns>
značku v prvním GridView
ovládacím prvku:
<asp:TemplateField HeaderText="Office Hours">
<ItemTemplate>
<asp:Label ID="InstructorOfficeHoursLabel" runat="server" Text='<%# Eval("OfficeHours") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="InstructorOfficeHoursTextBox" runat="server" Text='<%# Bind("OfficeHours") %>'
Width="14em"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
Sestavte řešení.
Otevřete okno konzoly Správce balíčků a jako výchozí projekt vyberte ContosoUniversity.DAL.
Zadejte následující příkazy:
add-migration AddOfficeHoursColumn
update-database
Spusťte aplikaci a vyberte stránku Instruktoři . Načtení stránky trvá o něco déle než obvykle, protože Entity Framework znovu vytvoří databázi a zasadí ji testovacími daty.
Nasazení aktualizace databáze do testovacího prostředí
Pokud použijete Migrace Code First, metoda pro nasazení databáze se změní na SQL Server je stejná jako u SQL Server Compact. Profil publikování testu ale musíte změnit, protože je stále nastavený na migraci z SQL Server Compact na SQL Server.
Prvním krokem je odebrání transformací připojovací řetězec, které jste vytvořili v předchozím kurzu. Ty už nejsou potřeba, protože v profilu publikování zadáte připojovací řetězec transformace, jako jste to udělali před konfigurací karty Package/Publish SQL pro migraci do SQL Server.
Otevřete souborWeb.Test.config a odeberte connectionStrings
element. Jediná zbývající transformace v souboruWeb.Test.config je pro Environment
hodnotu v elementu appSettings
.
Teď můžete aktualizovat profil publikování a publikovat do testovacího prostředí.
Otevřete průvodce Publikovat web a přepněte na kartu Profil .
Vyberte Testovat profil publikování.
Vyberte kartu Settings (Nastavení).
Klikněte na Povolit nová vylepšení publikování databáze.
Do pole připojovací řetězec pro SchoolContext zadejte stejnou hodnotu, kterou jste použili v souboru transformaceWeb.Test.config v předchozím kurzu:
Data Source=.\SQLExpress;Initial Catalog=School-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True
Vyberte Spustit Migrace Code First (spustí se při spuštění aplikace). (Ve vaší verzi sady Visual Studio může být zaškrtávací políčko označené použít Migrace Code First.)
Do pole připojovací řetězec pro DefaultConnection zadejte stejnou hodnotu, kterou jste použili v souboru transformaceWeb.Test.config v předchozím kurzu:
Data Source=.\SQLExpress;Initial Catalog=aspnet-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True
Nechejte políčko Aktualizovat databázi nezaškrtnuté.
Klikněte na Publikovat.
Visual Studio nasadí změny kódu do testovacího prostředí a otevře prohlížeč na domovské stránce Univerzity Contoso.
Vyberte stránku Instruktoři.
Když aplikace spustí tuto stránku, pokusí se o přístup k databázi. Migrace Code First zkontroluje, jestli je databáze aktuální, a zjistí, že se ještě nepoužádá nejnovější migrace. Migrace Code First použijete nejnovější migraci, spustí metodu Seed
a stránka se pak spustí normálně. Zobrazí se nový sloupec Pracovní doba s počátečními daty.
Nasazení aktualizace databáze do produkčního prostředí
Musíte také změnit profil publikování pro produkční prostředí. V tomto případě odeberete existující profil a vytvoříte nový importem aktualizovaného souboru .publishsettings. Aktualizovaný soubor bude obsahovat připojovací řetězec pro databázi SQL Server v Cytanium.
Jak jste viděli při nasazení do testovacího prostředí, v transformačním souboru Web.Production.config už nepotřebujete připojovací řetězec transformace. Otevřete tento soubor a odeberte connectionStrings
element. Zbývající transformace jsou pro Environment
hodnotu v elementu appSettings
a elementu location
, který omezuje přístup k zprávám o chybách Elmah.
Než vytvoříte nový profil publikování pro produkční prostředí, stáhněte si aktualizovaný soubor .publishsettings stejným způsobem jako dříve v kurzu Nasazení do produkčního prostředí . (V ovládacím panelu Cytanium klikněte na Weby a potom klikněte na contosouniversity.com web. Vyberte kartu Publikování na webu a potom klikněte na Stáhnout profil publikování pro tento web.) Důvodem, proč to děláte, je vyzvednutí databáze připojovací řetězec v souboru .publishsettings. Připojovací řetězec nebyl k dispozici při prvním stažení souboru, protože jste stále používali SQL Server Compact a ještě jste nevytvořili SQL Server databázi na Cytanium.
Teď můžete aktualizovat profil publikování a publikovat do produkčního prostředí.
Otevřete průvodce Publikovat web a přepněte na kartu Profil .
Klikněte na Spravovat profily a odstraňte produkční profil.
Pokud chcete tuto změnu uložit, zavřete průvodce publikováním webu .
Znovu otevřete průvodce publikováním webu a klikněte na Importovat.
Pokud používáte dočasnou adresu URL, na kartě Připojení změňte cílovou adresu URL na příslušnou hodnotu.
Klikněte na Next (Další).
Na kartě Nastavení klikněte na povolit nová vylepšení publikování databáze.
V rozevíracím seznamu připojovací řetězec pro SchoolContext vyberte připojovací řetězec Cytanium.
Vyberte Spustit migrace Code First (spustí se při spuštění aplikace).
V rozevíracím seznamu připojovací řetězec pro DefaultConnection vyberte připojovací řetězec Cytanium.
Vyberte kartu Profil , klikněte na Spravovat profily a přejmenujte profil z contosouniversity.com – Nasazení webu na Produkční.
Zavřete profil publikování, aby se změna uložila, a pak ji znovu otevřete.
Klikněte na Publikovat. (U skutečného produkčního webu byste zkopírovaliapp_offline.htm do produkčního prostředí a před publikováním je umístili do složky projektu a po dokončení nasazení ho odebrali.)
Visual Studio nasadí změny kódu do testovacího prostředí a otevře prohlížeč na domovské stránce Univerzity Contoso.
Vyberte stránku Instruktoři.
Migrace Code First aktualizuje databázi stejným způsobem jako v testovacím prostředí. Zobrazí se nový sloupec Pracovní doba s počátečními daty.
Teď jste úspěšně nasadili aktualizaci aplikace, která zahrnovala změnu databáze, pomocí SQL Server databáze.
Další informace
Tím se dokončí tato série kurzů o nasazení webové aplikace ASP.NET k poskytovateli hostingu třetí strany. Další informace o všech tématech probíraných v těchto kurzech najdete v mapě obsahu nasazení ASP.NET na webu MSDN.
Poděkování
Chtěl bych poděkovat následujícím lidem, kteří významně přispěli k obsahu této série kurzů:
- Alberto Poblacion, MVP & MCT, Španělsko
- Jarod Ferguson, MVP pro vývoj datových platforem, USA
- Drsný Mittal, Microsoft
- Kristina Olson, Microsoft
- Mike Pope, Microsoft
- Mohit Srivastava, Microsoft
- Raffaele Rialdi, Itálie
- Rick Anderson, Microsoft
- Sayed Hashimi, Microsoft(twitter: @sayedihashimi)
- Scott Hanselman (twitter: @shanselman)
- Scott Hunter, Microsoft (twitter: @coolcsh)
- Srđan Božović, Srbsko
- Vishal Joshi, Microsoft (twitter: @vishalrjoshi)