ASP.NET nasazení webu pomocí sady Visual Studio: Úvod
V této sérii kurzů se dozvíte, jak nasadit (publikovat) ASP.NET webovou aplikaci do Azure App Service Web Apps nebo poskytovatele hostingu třetí strany pomocí sady Visual Studio 2012 se sadou Azure SDK pro .NET. Většina postupů je pro Visual Studio 2013 podobná.
Vyvíjíte webovou aplikaci, abyste ji mohli zpřístupnit lidem přes internet. Kurzy webového programování se ale obvykle zastaví hned poté, co vám ukázaly, jak na vývojovém počítači něco zprovoznit. Tato série kurzů začíná tam, kde ostatní opustí: vytvořili jste webovou aplikaci, otestovali ji a je připravená. Co dále? V těchto kurzech se dozvíte, jak nejprve nasadit službu IIS na místním vývojovém počítači pro účely testování a pak do Azure nebo poskytovatele hostingu třetí strany pro účely přípravy a produkčního prostředí. Ukázková aplikace, kterou nasadíte, je projekt webové aplikace, který používá Entity Framework, SQL Server a systém členství ASP.NET. Ukázková aplikace používá ASP.NET Web Forms, ale uvedené postupy platí také pro ASP.NET MVC a webové rozhraní API.
V těchto kurzech se předpokládá, že víte, jak pracovat s ASP.NET v sadě Visual Studio. Pokud ne, dobrým místem, kde začít, je základní kurz ASP.NET Web Forms nebo základní kurz ASP.NET MVC.
Pokud máte dotazy, které nesouvisejí přímo s kurzem, můžete je publikovat na fóru ASP.NET Nasazení nebo StackOverflow.
Přehled
Tyto kurzy vás provedou nasazením webové aplikace ASP.NET, která zahrnuje SQL Server databáze. Nejprve nasadíte službu IIS na místním vývojovém počítači pro účely testování a pak Web Apps v Azure App Service a Azure SQL Database pro přípravné a produkční prostředí. Uvidíte, jak provést nasazení pomocí publikování jedním kliknutím sady Visual Studio, a uvidíte, jak provést nasazení pomocí příkazového řádku.
Kvůli počtu kurzů může proces nasazení vypadat skličující. Ve skutečnosti jsou základní postupy jednoduché. V reálných situacích ale často potřebujete provést další úlohy nasazení – například nastavení oprávnění ke složce na cílovém serveru. Některé z těchto dalších úloh jsme si ilustrovali v naději, že v kurzech nebudou vynechány informace, které by vám mohly bránit v úspěšném nasazení skutečné aplikace.
Kurzy jsou navržené tak, aby běžely po sobě a každá část vychází z předchozí části. Části, které nejsou relevantní pro vaši situaci, můžete přeskočit, ale pak budete muset upravit postupy v dalších kurzech.
Zamýšlená cílová skupina
Kurzy jsou zaměřené na ASP.NET vývojáře, kteří pracují v prostředích, kde:
- Produkční prostředí je Azure App Service Web Apps nebo poskytovatele hostingu třetí strany.
- Nasazení se neomezuje na proces kontinuální integrace, ale může se provádět přímo ze sady Visual Studio.
Nasazení ze správy zdrojového kódu pomocí procesu průběžného doručování není v těchto kurzech popsáno s výjimkou jednoho kurzu, který ukazuje, jak provést nasazení z příkazového řádku. Informace o průběžném doručování najdete v následujících zdrojích informací:
- Kontinuální integrace a průběžné doručování (vytváření Real-World cloudových aplikací pomocí Windows Azure)
- Nasazení webové aplikace v Azure App Service
- Nasazení webových aplikací v podnikových scénářích (starší sada kurzů napsaných pro Visual Studio 2010, která stále obsahuje užitečné informace pro podniková prostředí.)
Použití poskytovatele hostingu třetí strany
Kurzy vás provedou procesem nastavení účtu Azure a nasazení aplikace, aby Web Apps v Azure App Service pro přípravu a produkci. Můžete ale použít stejné základní postupy pro nasazení u poskytovatele hostingu třetí strany podle vašeho výběru. Tam, kde kurzy procházejí procesy, které jsou jedinečné pro Azure, vysvětlují a radí, jaké rozdíly můžete očekávat u poskytovatele hostingu třetí strany.
Nasazení projektů webových aplikací
Ukázková aplikace, kterou stáhnete a nasadíte pro tyto kurzy, je projekt webové aplikace sady Visual Studio. Pokud ale nainstalujete nejnovější aktualizaci publikování webu pro Visual Studio, můžete použít stejné metody nasazení a nástroje pro projekty webových aplikací.
Nasazení ASP.NET projektů MVC
Ukázková aplikace je ASP.NET Web Forms projekt, ale všechno, co se naučíte, platí i pro ASP.NET MVC. Projekt Visual Studio MVC je jen další formou projektu webové aplikace. Jediným rozdílem je, že pokud nasazujete u poskytovatele hostingu, který nepodporuje ASP.NET MVC nebo jeho cílovou verzi, musíte se ujistit, že máte ve svém projektu nainstalovaný příslušný balíček NuGet (MVC 3, MVC 4 nebo MVC 5).
Programovací jazyk
Ukázková aplikace používá jazyk C#, ale kurzy nevyžadují znalost jazyka C# a techniky nasazení uvedené v kurzech nejsou specifické pro konkrétní jazyk.
Metody nasazení databáze
Existují tři způsoby, jak můžete nasadit databázi SQL Server společně s nasazením webu v sadě Visual Studio:
- Migrace Entity Framework Code First
- Poskytovatel nasazení webu dbDacFx
- Zprostředkovatel nasazení webu dbFullSql
V tomto kurzu použijete první dvě z těchto metod. Zprostředkovatel dbFullSql Web Deploy je starší metoda, která se už nedoporučuje s výjimkou některých specifických scénářů, jako je migrace z SQL Server Compact na SQL Server.
Metody uvedené v tomto kurzu jsou určené pro SQL Server databáze, nikoli pro SQL Server Compact. Informace o nasazení databáze SQL Server Compact najdete v tématu Nasazení webu sady Visual Studio s SQL Server Compact.
Metody uvedené v tomto kurzu vyžadují, abyste použili metodu publikování Nasazení webu. Pokud dáváte přednost jiné metodě publikování, jako je FTP, Systém souborů nebo FPSE, přečtěte si téma Nasazení databáze odděleně od nasazení webové aplikace v mapě obsahu nasazení webu pro visual studio a ASP.NET.
Migrace Entity Framework Code First
V Entity Frameworku verze 4.3 společnost Microsoft zavedla Migrace Code First. Migrace Code First automatizuje proces provádění přírůstkových změn datového modelu a jejich šíření do databáze. V dřívějších verzích Code First obvykle necháte Entity Framework vypustit a znovu vytvořit databázi pokaždé, když změníte datový model. To není problém ve vývoji, protože testovací data se snadno znovu vytvářejí, ale v produkčním prostředí obvykle chcete aktualizovat schéma databáze bez vyřazení databáze. Funkce Migrace umožňuje službě Code First aktualizovat databázi bez vyřazení a opětovného vytvoření. Můžete nechat Code First automaticky rozhodnout, jak provést požadované změny schématu, nebo můžete napsat kód, který změny přizpůsobí. Úvod k Migrace Code First najdete v tématu Migrace Code First.
Při nasazování webového projektu může Visual Studio automatizovat proces nasazení databáze spravované Migrace Code First. Při vytváření profilu publikování zaškrtnete políčko s popiskem Spustit Migrace Code First (spustí se při spuštění aplikace). Toto nastavení způsobí, že proces nasazení automaticky nakonfiguruje soubor aplikace Web.config na cílovém serveru tak, aby Code First používal MigrateDatabaseToLatestVersion
třídu inicializátoru.
Visual Studio během procesu nasazení s databází nic neudělá. Když nasazená aplikace poprvé po nasazení přistupuje k databázi, Code First automaticky vytvoří databázi nebo aktualizuje schéma databáze na nejnovější verzi. Pokud aplikace implementuje metodu Migrations Seed, spustí se po vytvoření databáze nebo aktualizaci schématu.
V tomto kurzu použijete Migrace Code First k nasazení databáze aplikace.
Poskytovatel nasazení webu dbDacFx
U SQL Server databáze, která není spravovaná nástrojem Entity Framework Code First, můžete při konfiguraci profilu publikování zaškrtnout políčko s popiskem Aktualizovat databázi. Během počátečního nasazení vytvoří zprostředkovatel dbDacFx tabulky a další databázové objekty v cílové databázi tak, aby odpovídaly zdrojové databázi. Při následných nasazeních poskytovatel určí, co se liší mezi zdrojovou a cílovou databází, a aktualizuje schéma cílové databáze tak, aby odpovídalo zdrojové databázi. Ve výchozím nastavení poskytovatel neprodá žádné změny, které by způsobily ztrátu dat, například při vyřazení tabulky nebo sloupce.
Tato metoda neautomatizuje nasazení dat v databázových tabulkách, ale můžete k tomu vytvořit skripty a nakonfigurovat sadu Visual Studio tak, aby je spouštěla během nasazování. Dalším důvodem pro spouštění skriptů během nasazení je provádět změny schématu, které se nedají provést automaticky, protože by způsobily ztrátu dat.
V tomto kurzu použijete poskytovatele dbDacFx k nasazení databáze členství ASP.NET.
Řešení potíží během tohoto kurzu
Pokud během nasazování dojde k chybě nebo pokud nasazená lokalita neběží správně, chybové zprávy nemusí vždy poskytovat zřejmé řešení. Abychom vám pomohli s některými běžnými problémy, je k dispozici stránka s referenčními informacemi pro řešení potíží . Pokud se vám při procházení kurzů zobrazí chybová zpráva nebo něco nefunguje, nezapomeňte se podívat na stránku pro řešení potíží.
Vítá vás komentáře
Komentáře k kurzům jsou vítány, a když se kurz aktualizuje, bude vynaloženo veškeré úsilí, aby se zohlednily opravy nebo návrhy na vylepšení, které jsou uvedeny v komentářích ke kurzu.
Požadavky
Tento kurz byl napsán pro následující produkty:
- Windows 8 nebo Windows 7.
- Visual Studio 2012 nebo Visual Studio 2012 Express pro web s nejnovější aktualizací.
- Azure SDK pro Visual Studio 2012
Tento kurz můžete sledovat pomocí sady Visual Studio 2010 SP1 nebo Visual Studio 2013, ale některé snímky obrazovek se budou lišit a některé funkce se budou lišit.
Pokud používáte Visual Studio 2013, nainstalujte sadu Azure SDK pro Visual Studio 2013.
Pokud používáte Visual Studio 2010 SP1, nainstalujte si následující software:
V závislosti na tom, kolik závislostí sady SDK už na svém počítači máte, může instalace sady Azure SDK trvat dlouhou dobu, několik minut až půl hodiny nebo déle. Sadu Azure SDK potřebujete i v případě, že plánujete publikovat u poskytovatele hostingu třetí strany místo do Azure, protože sada SDK obsahuje nejnovější aktualizace funkcí publikování na webu sady Visual Studio.
Poznámka
Tento kurz byl napsán ve verzi 1.8.1 sady Azure SDK. Od té doby byly vydány novější verze s dalšími funkcemi. Kurzy byly aktualizovány tak, aby zmiňovaly tyto funkce a odkazovaly na zdroje, které o nich obsahují další informace.
Pokyny a snímky obrazovky jsou založené na Windows 8, ale kurzy vysvětlují rozdíly pro Windows 7.
K dokončení kurzu je potřeba nějaký jiný software, ale ještě ho nemusíte mít nainstalovaný. Tento kurz vás provede postupem instalace, když ho budete potřebovat.
Stažení ukázkové aplikace
Aplikace, kterou nasadíte, se jmenuje Contoso University a už je pro vás vytvořená. Jedná se o zjednodušenou verzi webu univerzity, volně založenou na aplikaci Contoso University popsané v kurzech entity frameworku na ASP.NET webu.
Až budete mít nainstalované požadavky, stáhněte si webovou aplikaci Contoso University. Soubor.zip obsahuje více verzí projektu. Pokud chcete projít kroky kurzu, začněte projektem umístěným ve složce C#. Pokud chcete zjistit, jak projekt vypadá na konci kurzů, otevřete ho ve složce ContosoUniversity-End.
Pokud chcete projekt připravit na práci s kroky kurzu, proveďte následující kroky:
Uložte soubory řešení ContosoUniversity ze složky C# do složky s názvem ContosoUniversity do libovolné složky, kterou používáte pro práci s projekty sady Visual Studio.
Ve výchozím nastavení je to následující složka pro Visual Studio 2012:
C:\Users\<username>\Documents\Visual Studio 2012\Projects
(Pro snímky obrazovky v tomto kurzu se složka projektu nachází v kořenovém adresáři na jednotce
C
:.)Spusťte Visual Studio a otevřete projekt.
V Průzkumník řešení klikněte pravým tlačítkem na řešení a klikněte na EnableNuGet Package Restore (Povolit obnovení balíčku NuGet).
Sestavte řešení.
Pokud dojde k chybám kompilace, ručně obnovte balíčky NuGet:
- V Průzkumník řešení klikněte pravým tlačítkem na řešení a potom klikněte na Spravovat balíčky NuGet pro řešení.
- V horní části dialogového okna Spravovat balíčky NuGet uvidíte , že v tomto řešení chybí některé balíčky NuGet. Kliknutím obnovíte. Klikněte na tlačítko Obnovit .
- Znovu sestavte řešení.
Stisknutím kláves CTRL-F5 spusťte aplikaci.
Aplikace se otevře na domovské stránce Contoso University.
(Spuštění instance SQL Server Express LocalDB v sadě Visual Studio může trvat čekací dobu. Pokud proces trvá příliš dlouho, může se zobrazit chyba vypršení časového limitu. V takovém případě jednoduše znovu spusťte projekt.)
Webové stránky jsou přístupné z řádku nabídek a umožňují provádět následující funkce:
- Zobrazení statistik studentů (stránka O aplikaci)
- Umožňuje zobrazit, upravit, odstranit a přidat studenty.
- Zobrazit a upravit kurzy.
- Zobrazení a úprava instruktorů
- Zobrazení a úpravy oddělení.
Následují snímky obrazovky s několika reprezentativními stránkami.
Kontrola funkcí aplikace, které ovlivňují nasazení
Následující funkce aplikace mají vliv na to, jak ji nasazujete nebo co musíte udělat k jejímu nasazení. Každý z nich je podrobněji vysvětlen v následujících kurzech v této sérii.
- Contoso University používá databázi SQL Server k ukládání dat aplikací, jako jsou jména studentů a instruktorů. Databáze obsahuje kombinaci testovacích a produkčních dat a při nasazení do produkčního prostředí je potřeba testovací data vyloučit.
- Aplikace používá systém členství ASP.NET, který ukládá informace o uživatelských účtech do databáze SQL Server. Aplikace definuje uživatele správce, který má přístup k některým omezeným informacím. Databázi členství musíte nasadit bez testovacích účtů, ale s účtem správce.
- Aplikace používá nástroj pro protokolování chyb a generování sestav třetí strany. Tento nástroj je k dispozici v sestavení, které musí být nasazeno s aplikací.
- Nástroj pro protokolování chyb zapisuje informace o chybách v souborech XML do složky souborů. Musíte se ujistit, že účet, pod kterým ASP.NET běží v nasazené lokalitě, má oprávnění k zápisu do této složky a musíte tuto složku vyloučit z nasazení. (V opačném případě můžou být data protokolu chyb z testovacího prostředí nasazená do produkčního prostředí nebo soubory protokolu chyb v produkčním prostředí odstraněna.)
- Aplikace obsahuje některá nastavení, která je potřeba změnit v nasazené Web.config souboru v závislosti na cílovém prostředí (testovací, pracovní nebo produkční), a další nastavení, která je potřeba změnit v závislosti na konfiguraci sestavení (ladění nebo vydání).
- Řešení sady Visual Studio zahrnuje projekt knihovny tříd. Nasadit by se mělo pouze sestavení, které tento projekt vygeneruje, nikoli samotný projekt.
Souhrn
V tomto prvním kurzu v sérii jste si stáhli ukázkový projekt sady Visual Studio a prozkoumali jste funkce webu, které ovlivňují způsob nasazení aplikace. V následujících kurzech se připravíte na nasazení nastavením některých z těchto věcí, které se mají zpracovávat automaticky. Ostatní, o které se staráte ručně.