Nasazení webové aplikace ASP.NET s SQL Server Compact pomocí sady Visual Studio nebo Visual Web Developer: Nasazení do služby IIS jako testovacího prostředí – 5 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 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 nasadit ASP.NET webovou aplikaci do služby IIS v místním počítači.
Při vývoji aplikace obecně testujete jejím spuštěním v sadě Visual Studio. Ve výchozím nastavení to znamená, že používáte Vývojový server sady Visual Studio (označovaný také jako Cassini). Vývojový server sady Visual Studio usnadňuje testování během vývoje v sadě Visual Studio, ale nefunguje přesně jako služba IIS. V důsledku toho je možné, že se aplikace při testování v sadě Visual Studio spustí správně, ale při nasazení do služby IIS v hostitelském prostředí selže.
Aplikaci můžete spolehlivěji otestovat těmito způsoby:
- Při testování v sadě Visual Studio během vývoje použijte místo vývojového serveru sady Visual Studio IIS Express nebo úplnou službu IIS. Tato metoda obecně přesněji emuluje, jak bude váš web běžet ve službě IIS. Tato metoda však neotestuje proces nasazení ani neověřuje, že výsledek procesu nasazení bude fungovat správně.
- Nasaďte aplikaci do služby IIS na vývojovém počítači pomocí stejného procesu, který použijete později k jejímu nasazení do produkčního prostředí. Tato metoda kromě ověření, že vaše aplikace bude správně fungovat ve službě IIS, ověří proces nasazení.
- Nasaďte aplikaci do testovacího prostředí, které je co nejblíže vašemu produkčnímu prostředí. Vzhledem k tomu, že produkčním prostředím pro tyto kurzy je poskytovatel hostingu třetí strany, ideální testovací prostředí by byl druhý účet u poskytovatele hostingu. Tento druhý účet byste použili jenom k testování, ale byl by nastavený stejným způsobem jako produkční účet.
Tento kurz ukazuje kroky pro možnost 2. Pokyny k možnosti 3 najdete na konci kurzu Nasazení do produkčního prostředí a na konci tohoto kurzu jsou odkazy na prostředky pro možnost 1.
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íží.
Konfigurace spuštění aplikace ve střední důvěryhodnosti
Před instalací služby IIS a jejím nasazením změníte nastavení souboru Web.config, aby web běžel více jako v typickém sdíleném hostitelském prostředí.
Poskytovatelé hostingu obvykle provozují web ve střední důvěryhodnosti, což znamená, že některé věci nejsou povolené. Například kód aplikace nemá přístup k registru Systému Windows a nemůže číst ani zapisovat soubory, které jsou mimo hierarchii složek vaší aplikace. Ve výchozím nastavení běží vaše aplikace na místním počítači s vysokou důvěryhodností , což znamená, že aplikace může být schopná dělat věci, které by při nasazení do produkčního prostředí selhaly. Proto, aby testovací prostředí přesněji odráželo produkční prostředí, nakonfigurujete aplikaci tak, aby běžela ve střední důvěryhodnosti.
V souboru aplikace Web.config přidejte do elementu system.web prvek důvěryhodnosti, jak je znázorněno v tomto příkladu.
<configuration>
<!-- Settings -->
<system.web>
<trust level="Medium" />
<!-- Settings -->
</system.web>
</configuration>
Aplikace teď bude ve službě IIS běžet se střední důvěryhodností i na místním počítači. Toto nastavení umožňuje co nejdříve zachytit všechny pokusy kódu aplikace o něco, co by selhalo v produkčním prostředí.
Poznámka
Pokud používáte Migrace Entity Framework Code First, ujistěte se, že máte nainstalovanou verzi 5.0 nebo novější. V Entity Frameworku verze 4.3 vyžadují migrace úplnou důvěryhodnost, aby bylo možné aktualizovat schéma databáze.
Instalace služby IIS a nasazení webu
Pokud chcete nasadit službu IIS na vývojovém počítači, musíte mít nainstalované služby IIS a Nasazení webu. Nejsou zahrnuté ve výchozí konfiguraci Systému Windows 7. Pokud jste už nainstalovali službu IIS i nasazení webu, přejděte k další části.
Použití instalačního programu webové platformy je upřednostňovaným způsobem instalace služby IIS a Nasazení webu, protože instalační program webové platformy nainstaluje doporučenou konfiguraci pro službu IIS a v případě potřeby automaticky nainstaluje požadavky pro službu IIS a Nasazení webu.
Pokud chcete spustit instalační program webové platformy pro instalaci služby IIS a Nasazení webu, použijte následující odkaz. Pokud už máte nainstalovanou službu IIS, nasazení webu nebo některou z jejich požadovaných součástí, nainstaluje instalační program webové platformy jenom to, co chybí.
Nastavení výchozího fondu aplikací na .NET 4
Po instalaci služby IIS spusťte Správce služby IIS a ujistěte se, že je rozhraní .NET Framework verze 4 přiřazeno k výchozímu fondu aplikací.
V nabídce Start systému Windows vyberte Spustit, zadejte "inetmgr" a klikněte na OK. (Pokud příkaz Spustit není v nabídce Start , můžete ho otevřít stisknutím kláves Windows a R. Nebo klikněte pravým tlačítkem na hlavní panel, klikněte na Vlastnosti, vyberte kartu Nabídky Start , klikněte na Přizpůsobit a vyberte Spustit příkaz.)
V podokně Connections rozbalte uzel serveru a vyberte Fondy aplikací. V podokně Fondy aplikací , pokud je k rozhraní .NET Framework verze 4 přiřazena možnost DefaultAppPool , přejděte k další části.
Pokud vidíte pouze dva fondy aplikací a oba jsou nastavené na rozhraní .NET Framework 2.0, musíte nainstalovat ASP.NET 4 ve službě IIS:
Okno příkazového řádku otevřete tak, že v nabídce Start systému Windows kliknete pravým tlačítkem na Příkazový řádek a vyberete Spustit jako správce. Potom spuštěnímaspnet_regiis.exe nainstalujte ASP.NET 4 ve službě IIS pomocí následujících příkazů. (V 64bitových systémech nahraďte "Framework" názvem "Framework64".)
cd %windir%\Microsoft.NET\Framework\v4.0.30319 aspnet_regiis.exe –iru
Tento příkaz vytvoří nové fondy aplikací pro rozhraní .NET Framework 4, ale výchozí fond aplikací bude stále nastaven na 2.0. Nasadíte aplikaci, která cílí na .NET 4, do daného fondu aplikací, takže musíte změnit fond aplikací na .NET 4.
Pokud jste zavřeli Správce služby IIS, spusťte ho znovu, rozbalte uzel serveru a kliknutím na Fondy aplikací znovu zobrazte podokno Fondy aplikací .
V podokně Fondy aplikací klikněte na DefaultAppPool a pak v podokně Akce klikněte na Základní nastavení.
V dialogovém okně Upravit fond aplikací změňte verzi rozhraní .NET Framework na .NET Framework v4.0.30319 a klikněte na OK.
Teď jste připraveni publikovat ve službě IIS.
Publikování do služby IIS
Existuje několik způsobů, jak můžete nasadit pomocí sady Visual Studio 2010 a Nasazení webu:
- Použijte publikování jedním kliknutím v sadě Visual Studio.
- Vytvořte balíček pro nasazení a nainstalujte ho pomocí uživatelského rozhraní Správce služby IIS. Balíček pro nasazení se skládá ze souboru.zip , který obsahuje všechny soubory a metadata potřebná k instalaci lokality ve službě IIS.
- Vytvořte balíček pro nasazení a nainstalujte ho pomocí příkazového řádku.
Proces, který jste prošli v předchozích kurzech k nastavení sady Visual Studio pro automatizaci úloh nasazení, se vztahuje na všechny tyto tři metody. V těchto kurzech použijete první z těchto metod. Informace o používání balíčků nasazení najdete v tématu ASP.NET Mapa obsahu nasazení.
Před publikováním se ujistěte, že používáte sadu Visual Studio v režimu správce. (V nabídce Start ve Windows 7 klikněte pravým tlačítkem na ikonu pro verzi sady Visual Studio, kterou používáte, a vyberte Spustit jako správce.) Režim správce se vyžaduje pro publikování pouze v případě, že publikujete do služby IIS na místním počítači.
V Průzkumník řešení klikněte pravým tlačítkem na projekt ContosoUniversity (ne na projekt ContosoUniversity.DAL) a vyberte Publikovat.
Zobrazí se průvodce Publikovat web .
V rozevíracím seznamu vyberte <Nový...>.
V dialogovém okně Nový profil zadejte Test a klikněte na OK.
Tento název je stejný jako prostřední uzel souboru transformace Web.Test.config, který jste vytvořili dříve. Tato shoda způsobuje, že se při publikování pomocí tohoto profilu použijí transformace Web.Test.config.
Průvodce automaticky přejde na kartu Připojení .
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
.
Nastavení cílové adresy URL není povinné. Když Visual Studio dokončí nasazení aplikace, automaticky otevře výchozí prohlížeč na tuto adresu URL. Pokud nechcete, aby se prohlížeč po nasazení automaticky otevíral, nechte toto pole prázdné.
Kliknutím na Ověřit připojení ověřte správnost nastavení a můžete se připojit ke službě IIS na místním počítači.
Zelená značka zaškrtnutí ověří, že připojení proběhlo úspěšně.
Kliknutím na Další přejděte na kartu Nastavení .
Rozevírací seznam Konfigurace určuje konfiguraci sestavení, která se má nasadit. Výchozí hodnota je Vydaná verze, což je to, co chcete.
Políčko Remove additional files at destination (Odebrat další soubory v cíli ) nechejte zaškrtnuté. Vzhledem k tomu, že se jedná o vaše první nasazení, v cílové složce zatím nebudou žádné soubory.
V části Databáze zadejte do pole připojovací řetězec pro SchoolContext následující hodnotu:
Data Source=|DataDirectory|School-Prod.sdf
Proces nasazení umístí tento připojovací řetězec do nasazeného souboru Web.config, protože je vybraná možnost Použít tuto připojovací řetězec za běhu.
V části SchoolContext také vyberte Použít Migrace Code First. Tato možnost způsobí, že proces nasazení nakonfiguruje nasazený soubor Web.config tak, aby určil MigrateDatabaseToLatestVersion
inicializátor. Tento inicializátor automaticky aktualizuje databázi na nejnovější verzi, když aplikace poprvé po nasazení přistupuje k databázi.
Do pole připojovací řetězec pro DefaultConnection zadejte následující hodnotu:
Data Source=|DataDirectory|aspnet-Prod.sdf
Nechte Aktualizační databázi neza zaškrtnutou. Databáze členství se nasadí zkopírováním souboru .sdf v App_Data a nechcete, aby proces nasazení s touto databází dělal nic jiného.
Kliknutím na Další přejděte na kartu Náhled .
Na kartě Náhled klikněte na Spustit náhled a zobrazte seznam souborů, které se budou zkopírovat.
Klikněte na Publikovat.
Pokud Visual Studio není v režimu správce, může se zobrazit chybová zpráva, která značí chybu oprávnění. V takovém případě zavřete sadu Visual Studio, otevřete ji v režimu správce a zkuste publikovat znovu.
Pokud je sada Visual Studio v režimu správce, okno Výstup hlásí úspěšné sestavení a publikování.
Prohlížeč se automaticky otevře na domovské stránce Contoso University spuštěné ve službě IIS na místním počítači.
Testování v testovacím prostředí
Všimněte si, že indikátor prostředí zobrazuje "(Test)" místo "(Dev)", což ukazuje , že transformaceWeb.config pro indikátor prostředí byla úspěšná.
Spuštěním stránky Studenti ověřte, že nasazená databáze nemá žádné studenty. Když vyberete tuto stránku, může načtení trvat několik minut, protože Code First vytvoří databázi a pak spustí metodu Seed
. (Když jste byli na domovské stránce, neudělalo to, protože aplikace se ještě nepokusila o přístup k databázi.)
Spuštěním stránky Instruktoři ověřte, že Code First do databáze dosadí data instruktora:
V nabídce Studenti vyberte Přidat studenty, přidejte studenta a pak zobrazte nového studenta na stránce Studenti, abyste ověřili, že můžete úspěšně zapisovat do databáze:
V nabídce Courses (Kurzy) vyberte Update Credits (Aktualizovat kredity). Stránka Aktualizovat kredity vyžaduje oprávnění správce, takže se zobrazí přihlašovací stránka . Zadejte přihlašovací údaje účtu správce, které jste vytvořili dříve (admin a Pas$w0rd). Zobrazí se stránka Aktualizovat kredity , která ověří, jestli byl účet správce, který jste vytvořili v předchozím kurzu, správně nasazený do testovacího prostředí.
Ověřte, že existuje složka Elmah , ve které je pouze zástupný soubor.
Kontrola automatických změn Web.config pro Migrace Code First
Otevřete souborWeb.config v nasazené aplikaci v umístění C:\inetpub\wwwroot\ContosoUniversity a uvidíte, kde proces nasazení nakonfiguroval Migrace Code First tak, aby automaticky aktualizoval databázi na nejnovější verzi.
Proces nasazení také vytvořil nový připojovací řetězec pro Migrace Code First, které se budou používat výhradně k aktualizaci schématu databáze:
Tato další připojovací řetězec umožňuje zadat jeden uživatelský účet pro aktualizace schématu databáze a jiný uživatelský účet pro přístup k datům aplikací. Můžete například přiřadit roli db_owner Migrace Code First a db_datareader a db_datawriter role aplikaci. Jedná se o běžný vzor hloubkové ochrany, který brání potenciálně škodlivému kódu v aplikaci ve změně schématu databáze. (K tomu může dojít například při úspěšném útoku prostřednictvím injektáže SQL.) Tento model se v těchto kurzech nepoužívá. Nevztahuje se na SQL Server Compact a nepoužije se při migraci na SQL Server v pozdějším kurzu v této sérii. Web Cytanium nabízí jenom jeden uživatelský účet pro přístup k databázi SQL Server, kterou v Cytanium vytvoříte. Pokud ve svém scénáři dokážete tento model implementovat, můžete to udělat pomocí následujících kroků:
- Na kartě Nastavení průvodce Publikovat web zadejte připojovací řetězec, která určuje uživatele s oprávněními k úplné aktualizaci schématu databáze, a zrušte zaškrtnutí políčka Použít tento připojovací řetězec za běhu. V nasazené Web.config souboru se stane
DatabasePublish
připojovací řetězec. - Vytvořte transformaci souboru Web.config pro připojovací řetězec, který má aplikace používat za běhu.
Teď jste nasadili aplikaci do služby IIS na svém vývojovém počítači a otestovali ji tam. Tím se ověří, že proces nasazení zkopíroval obsah aplikace do správného umístění (s výjimkou souborů, které jste nechtěli nasadit) a že nasazení webu správně nakonfiguroval službu IIS během nasazení. V dalším kurzu spustíte ještě jeden test, který najde úlohu nasazení, která ještě nebyla provedena: nastavení oprávnění ke složce Elmah .
Další informace
Informace o spuštění služby IIS nebo IIS Express v sadě Visual Studio najdete v následujících zdrojích informací:
- IIS Express Přehled na webu IIS.net.
- Představujeme IIS Express na blogu Scotta Guthrieho.
- Postupy: Určení webového serveru pro webové projekty v sadě Visual Studio.
- Základní rozdíly mezi službou IIS a ASP.NET Vývojový server na ASP.NET webu.
- Otestujte své ASP.NET MVC nebo Web Forms aplikaci ve službě IIS 7 během 30 sekund na blogu Ricka Andersona. Tato položka obsahuje příklady, proč testování pomocí vývojového serveru sady Visual Studio (Cassini) není tak spolehlivé jako testování v IIS Express a proč testování v IIS Express není tak spolehlivé jako testování ve službě IIS.