Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
av Tom Dykstra
Den här självstudieserien visar hur du distribuerar (publicerar) en ASP.NET webbapp till Azure App Service Web Apps eller en värdleverantör från tredje part med hjälp av Visual Studio 2012 med Azure SDK för .NET. De flesta procedurerna är liknande för Visual Studio 2013.
Du utvecklar ett webbprogram för att göra det tillgängligt för personer via Internet. Men webbprogrammeringshandledningar slutar vanligtvis så snart de har visat dig hur du får något att fungera på datorn för utveckling. Den här serien med självstudier börjar där de andra lämnar: du har skapat en webbapp, testat den och den är redo att köras. Vad händer härnäst? Dessa handledningar visar hur du först distribuerar på din lokala utvecklingsdator till IIS för testning och sedan till Azure eller en tredjepartsvärdleverantör för förberedande och produktion. Exempelprogrammet som du distribuerar är ett webbprogramprojekt som använder Entity Framework, SQL Server och ASP.NET medlemskapssystemet. Exempelprogrammet använder ASP.NET webbformulär, men de procedurer som visas gäller även för ASP.NET MVC och webb-API.
De här handledningarna förutsätter att du kan arbeta med ASP.NET i Visual Studio. Om du inte gör det är ett bra ställe att börja på en grundläggande ASP.NET självstudie om webbformulär eller en grundläggande ASP.NET MVC-självstudie.
Om du har frågor som inte är direkt relaterade till självstudien kan du skicka dem till ASP.NET Distributionsforum eller StackOverflow.
Översikt
De här handledningarna leder dig genom att distribuera en ASP.NET-webbapplikation som innehåller SQL Server-databaser. Du distribuerar först till IIS på din lokala utvecklingsdator för testning och sedan till Web Apps i Azure App Service och Azure SQL Database för mellanlagring och produktion. Du får se hur du distribuerar med hjälp av Visual Studio med ett klick publicera och du ser hur du distribuerar med hjälp av kommandoraden.
Antalet handledningar kan få det att verka skrämmande att genomföra distributionsprocessen. I själva verket är de grundläggande förfarandena enkla. I verkliga situationer behöver du dock ofta utföra extra distributionsuppgifter, till exempel att ställa in mappbehörigheter på målservern. Vi har illustrerat några av dessa ytterligare uppgifter i hopp om att självstudierna inte utelämnar information som kan hindra dig från att distribuera ett riktigt program.
Handledningarna är utformade för att köras i följd och varje del bygger på föregående del. Du kan hoppa över delar som inte är relevanta för din situation, men sedan kan du behöva justera procedurerna i senare självstudier.
Avsedd målgrupp
Självstudierna riktar sig till ASP.NET-utvecklare som arbetar i miljöer där:
- Produktionsmiljön är Azure App Service Web Apps eller en värdleverantör från tredje part.
- Distributionen är inte begränsad till en kontinuerlig integreringsprocess, men kan göras direkt från Visual Studio.
Distribution från källkontroll med en kontinuerlig leveransprocess beskrivs inte i de här självstudierna, förutom en självstudie som visar hur du distribuerar från kommandoraden. Information om kontinuerlig leverans finns i följande resurser:
- Kontinuerlig integrering och kontinuerlig leverans (Skapa Real-World Cloud Apps med Windows Azure)
- Distribuera en webbapplikation i Azure App Service
- Distribuera webbprogram i företagsscenarier (en äldre uppsättning självstudier skrivna för Visual Studio 2010, som fortfarande har användbar information för företagsmiljöer.)
Använda en tredjeparts hostingleverantör
Självstudierna beskriver hur du konfigurerar ett Azure-konto och distribuerar programmet till Web Apps i Azure App Service för mellanlagring och produktion. Du kan dock använda samma grundläggande procedurer för att distribuera till valfri tredjepartsvärdleverantör. Självstudierna går igenom processer som är unika för Azure, och de förklarar dessa samt ger råd om vilka skillnader du kan förvänta dig hos en tredjepartsleverantör.
Distribuera projekt för webbapplikationer
Exempelprogrammet som du laddar ned och distribuerar för de här självstudierna är ett Visual Studio-webbprogramprojekt. Men om du installerar den senaste webbpubliceringsuppdateringen för Visual Studio kan du använda samma distributionsmetoder och verktyg för webbappsprojekt.
Utplacering av ASP.NET MVC-projekt
Exempelprogrammet är ett ASP.NET Web Forms-projekt, men allt du lär dig att göra gäller även för ASP.NET MVC. Ett Visual Studio MVC-projekt är bara en annan form av webbprogramprojekt. Den enda skillnaden är att om du distribuerar till en värdleverantör som inte stöder ASP.NET MVC eller din målversion av den, måste du se till att du har installerat rätt (MVC 3, MVC 4 eller MVC 5) NuGet-paket i projektet.
Programmeringsspråk
Exempelprogrammet använder C# men självstudierna kräver inte kunskap om C# och de distributionstekniker som visas i självstudierna är inte språkspecifika.
Metoder för databasdistribution
Det finns tre sätt att distribuera en SQL Server-databas tillsammans med webbdistribution i Visual Studio:
- Entity Framework Code First-migreringar
- DbDacFx Web Deploy-providern
- DbFullSql Web Deploy-providern
I den här självstudien använder du de två första metoderna. DbFullSql Web Deploy-providern är en äldre metod som inte längre rekommenderas förutom vissa specifika scenarier, till exempel migrering från SQL Server Compact till SQL Server.
Metoderna som visas i den här självstudien är för SQL Server-databaser, inte SQL Server Compact. Information om hur du distribuerar en SQL Server Compact-databas finns i Visual Studio-webbdistribution med SQL Server Compact.
Metoderna som visas i den här självstudien kräver att du använder publiceringsmetoden Web Deploy. Om du föredrar en annan publiceringsmetod, till exempel FTP, filsystem eller FPSE, kan du läsa Distribuera en databas separat från webbprogramdistribution i innehållskartan för webbdistribution för Visual Studio och ASP.NET.
Entity Framework Code First-migreringar
I Entity Framework version 4.3 introducerade Microsoft Code First Migrations. Code First Migrations automatiserar processen med att göra inkrementella ändringar i en datamodell och sprida ändringarna till databasen. I tidigare versioner av Code First låter du vanligtvis Entity Framework släppa och återskapa databasen varje gång du ändrar datamodellen. Detta är inte ett problem under utveckling eftersom testdata enkelt återskapas, men i produktion vill du vanligtvis uppdatera databasschemat utan att ta bort databasen. Med funktionen Migrering kan Code First uppdatera databasen utan att släppa och återskapa den. Du kan låta Code First automatiskt bestämma hur de nödvändiga schemaändringarna ska utföras, eller så kan du skriva kod som anpassar ändringarna. För en introduktion till Code First Migrations, se Code First Migrations.
När du distribuerar ett webbprojekt kan Visual Studio automatisera processen med att distribuera en databas som hanteras av Code First Migrations. När du skapar publiceringsprofilen markerar du en kryssruta med etiketten Execute Code First Migrations (körs vid programstart). Den här inställningen gör att distributionsprocessen automatiskt konfigurerar programmet Web.config filen på målservern så att Code First använder initieringsklassen MigrateDatabaseToLatestVersion .
Visual Studio gör ingenting med databasen under distributionsprocessen. När det distribuerade programmet kommer åt databasen för första gången efter distributionen skapar Code First automatiskt databasen eller uppdaterar databasschemat till den senaste versionen. Om programmet implementerar en Migrerings seed-metod körs metoden efter att databasen har skapats eller schemat har uppdaterats.
I den här självstudien använder du Code First Migrations för att distribuera programdatabasen.
DbDacFx Web Deploy-providern
För en SQL Server-databas som inte hanteras av Entity Framework Code First kan du markera en kryssruta som är märkt Uppdateringsdatabas när du konfigurerar publiceringsprofilen. Under den första distributionen skapar dbDacFx-providern tabeller och andra databasobjekt i måldatabasen för att matcha källdatabasen. Vid efterföljande distributioner avgör providern vad som skiljer sig mellan käll- och måldatabaserna och uppdaterar schemat för måldatabasen så att det matchar källdatabasen. Som standard gör providern inga ändringar som orsakar dataförlust, till exempel när en tabell eller kolumn tas bort.
Den här metoden automatiserar inte distributionen av data i databastabeller, men du kan skapa skript för att göra det och konfigurera Visual Studio att köra dem under distributionen. En annan anledning till att köra skript under distributionen är att göra schemaändringar som inte kan göras automatiskt eftersom de skulle orsaka dataförlust.
I den här självstudien använder du dbDacFx-providern för att distribuera ASP.NET-medlemskapsdatabasen.
Felsökning i den här handledningen
När ett fel inträffar under distributionen, eller om den distribuerade platsen inte körs korrekt, ger felmeddelandena inte alltid en uppenbar lösning. För att hjälpa dig med några vanliga problemscenarier finns en felsökningsreferenssida tillgänglig. Om du får ett felmeddelande eller om något inte fungerar när du går igenom självstudierna, ska du kontrollera felsökningssidan.
Välkommen till kommentarer
Kommentarer om självstudierna är välkomna och när självstudien uppdateras görs alla ansträngningar för att ta hänsyn till korrigeringar eller förslag på förbättringar som ges i självstudiekommentarer.
Förutsättningar
Den här handledningen skrevs för följande produkter:
- Windows 8 eller Windows 7.
- Visual Studio 2012 eller Visual Studio 2012 Express for Web med den senaste uppdateringen.
- Azure SDK för Visual Studio 2012
Du kan följa självstudien med hjälp av Visual Studio 2010 SP1 eller Visual Studio 2013, men vissa skärmdumpar skiljer sig åt och vissa funktioner skiljer sig.
Om du använder Visual Studio 2013 installerar du Azure SDK för Visual Studio 2013.
Om du använder Visual Studio 2010 SP1 installerar du följande programvara:
Beroende på hur många SDK-beroenden du redan har på datorn kan det ta lång tid att installera Azure SDK, från flera minuter till en halvtimme eller mer. Du behöver Azure SDK även om du planerar att publicera till en tredjepartsvärdleverantör i stället för till Azure, eftersom SDK:t innehåller de senaste uppdateringarna av Visual Studio-webbpubliceringsfunktioner.
Anmärkning
Den här handledningen skrevs med version 1.8.1 av Azure SDK. Sedan dess har nyare versioner med ytterligare funktioner släppts. Självstudierna har uppdaterats för att inkludera nämnande av dessa funktioner samt länkar till resurser med mer information om dem.
Instruktionerna och skärmdumparna baseras på Windows 8, men handledningarna förklarar skillnaderna mellan Windows 8 och Windows 7.
Vissa andra program krävs för att slutföra självstudien, men du behöver inte ha det installerat ännu. I handledningen går vi igenom stegen för att installera den vid behov.
Ladda ned exempelprogrammet
Programmet som du distribuerar heter Contoso University och har redan skapats åt dig. Det är en förenklad version av en universitetswebbplats, som är löst baserad på Contoso University-programmet som beskrivs i Entity Framework-självstudierna på ASP.NET-webbplatsen.
När du har installerat förhandskraven laddar du ned Contoso University-webbappen. Filen .zip innehåller flera versioner av projektet. Om du vill gå igenom stegen i självstudien börjar du med projektet som finns i C#-mappen. Om du vill se hur projektet ser ut i slutet av självstudierna öppnar du projektet i mappen ContosoUniversity-End.
Utför följande steg för att förbereda projektet för att arbeta med självstudieguiden:
Spara ContosoUniversity-lösningsfilerna från C#-mappen i en mapp med namnet ContosoUniversity i den mapp som du använder för att arbeta med Visual Studio-projekt.
Som standard är detta följande mapp för Visual Studio 2012:
C:\Users\<username>\Documents\Visual Studio 2012\Projects(För skärmdumparna i den här självstudien finns projektmappen i rotkatalogen
Cpå enheten : .)Starta Visual Studio och öppna projektet.
Högerklicka på lösningen i Solution Explorer och klicka på AktiveraNuGet-paketåterställning.
Skapa lösningen.
Om du får kompileringsfel återställer du NuGet-paketen manuellt:
- Högerklicka på lösningen i Solution Explorer och klicka sedan på Hantera NuGet-paket för lösning.
- Överst i dialogrutan Hantera NuGet-paket ser du att vissa NuGet-paket saknas i den här lösningen. Klicka för att återställa. Klicka på knappen Återställ .
- Återskapa lösningen.
Tryck på CTRL-F5 för att köra programmet.
Programmet öppnas på Contoso Universitys startsida.
(Det kan finnas en väntetid medan Visual Studio startar SQL Server Express LocalDB-instansen och du kan få ett timeout-fel om processen tar för lång tid. I så fall startar du bara projektet igen.)
Webbplatssidorna är tillgängliga från menyraden och gör att du kan utföra följande funktioner:
- Visa elevstatistik (sidan Om).
- Visa, redigera, ta bort och lägg till elever.
- Visa och redigera kurser.
- Visa och redigera lärare.
- Visa och redigera avdelningar.
Nedan visas skärmdumpar av några representativa sidor.
Granska programfunktioner som påverkar distributionen
Följande funktioner i programmet påverkar hur du distribuerar det eller vad du måste göra för att distribuera det. Var och en av dessa beskrivs mer detaljerat i de följande handledningarna i serien.
- Contoso University använder en SQL Server-databas för att lagra programdata som student- och lärarnamn. Databasen innehåller en blandning av testdata och produktionsdata, och när du distribuerar till produktion måste du undanta testdata.
- Programmet använder ASP.NET medlemskapssystem, som lagrar användarkontoinformation i en SQL Server-databas. Programmet definierar en administratörsanvändare som har åtkomst till viss begränsad information. Du måste distribuera medlemskapsdatabasen utan testkonton men med ett administratörskonto.
- Programmet använder ett verktyg för felloggning och rapportering från tredje part. Det här verktyget tillhandahålls i en sammansättning som måste distribueras med programmet.
- Verktyget för felloggning skriver felinformation i XML-filer till en mapp. Du måste se till att det konto som ASP.NET körs under på den distribuerade webbplatsen har skrivbehörighet till den här mappen och att du måste undanta den här mappen från distributionen. (Annars kan felloggdata från testmiljön distribueras till produktion och/eller så kan produktionsfelloggfiler tas bort.)
- Programmet innehåller vissa inställningar som måste ändras i den distribuerade Web.config-filen beroende på målmiljön (test, mellanlagring eller produktion) och andra inställningar som måste ändras beroende på versionskonfigurationen (felsökning eller version).
- Visual Studio-lösningen innehåller ett klassbiblioteksprojekt. Endast den sammansättning som det här projektet genererar ska distribueras, inte själva projektet.
Sammanfattning
I den här första självstudien i serien har du laddat ned Visual Studio-exempelprojektet och granskat webbplatsfunktioner som påverkar hur du distribuerar programmet. I följande självstudier förbereder du distributionen genom att konfigurera några av dessa saker som ska hanteras automatiskt. Andra du tar hand om manuellt.