Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Tom Dykstra
In dieser Lernprogrammreihe wird gezeigt, wie Sie eine ASP.NET Webanwendung mithilfe von Visual Studio 2012 mit dem Azure SDK für .NET in Azure App Service Web Apps oder einem Drittanbieter-Hostinganbieter bereitstellen (veröffentlichen). Die meisten Verfahren sind für Visual Studio 2013 ähnlich.
Sie entwickeln eine Webanwendung, um sie personen über das Internet zur Verfügung zu stellen. Webprogrammierungstutorials hören typischerweise auf, nachdem sie gezeigt haben, wie man etwas auf dem Entwicklungscomputer zum Laufen bringt. Diese Reihe von Tutorials beginnt, wo die anderen aufhören: Sie haben eine Webapp erstellt, getestet und ist bereit zur Verbreitung. Wie geht es weiter? In diesen Tutorials erfahren Sie, wie Sie zunächst für Testzwecke auf IIS auf Ihrem lokalen Entwicklungscomputer bereitstellen und anschließend für Staging und Produktion auf Azure oder bei einem Drittanbieter-Hosting-Anbieter. Die Beispielanwendung, die Sie bereitstellen, ist ein Webanwendungsprojekt, das das Entity Framework, SQL Server und das ASP.NET Mitgliedschaftssystem verwendet. Die Beispielanwendung verwendet ASP.NET Webformulare, aber die gezeigten Verfahren gelten auch für ASP.NET MVC und Web-API.
In diesen Lernprogrammen wird davon ausgegangen, dass Sie wissen, wie Sie mit ASP.NET in Visual Studio arbeiten. Wenn Sie das nicht tun, ist ein einfaches ASP.NET Web Forms Tutorial oder ein ein einfaches ASP.NET MVC Tutorial ein guter Anfangspunkt.
Wenn Sie Fragen haben, die nicht direkt mit dem Lernprogramm zusammenhängen, können Sie sie im ASP.NET Deployment Forum oder StackOverflow posten.
Übersicht
Diese Lernprogramme führen Sie durch die Bereitstellung einer ASP.NET Webanwendung, die SQL Server-Datenbanken enthält. Sie stellen zuerst IIS auf Ihrem lokalen Entwicklungscomputer für Testzwecke bereit und danach Web Apps im Azure App Service sowie die Azure SQL-Datenbank für die Staging- und Produktionsumgebung. Sie erfahren, wie Sie mithilfe der Veröffentlichung mit einem Klick in Visual Studio bereitstellen, und Sie erfahren, wie Sie mithilfe der Befehlszeile bereitstellen.
Die Anzahl der Tutorials lässt den Bereitstellungsprozess möglicherweise abschreckend erscheinen. In der Tat sind die grundlegenden Verfahren einfach. In realen Situationen müssen Sie jedoch häufig zusätzliche Bereitstellungsaufgaben ausführen, z. B. das Festlegen von Ordnerberechtigungen auf dem Zielserver. Wir haben einige dieser zusätzlichen Aufgaben veranschaulicht, in der Hoffnung, dass die Lernprogramme keine Informationen auslassen, die Sie daran hindern könnten, eine echte Anwendung erfolgreich bereitzustellen.
Die Lernprogramme sind so konzipiert, dass sie sequenziert ausgeführt werden, und jeder Teil baut auf dem vorherigen Teil auf. Sie können Teile überspringen, die für Ihre Situation nicht relevant sind, aber möglicherweise müssen Sie die Verfahren in späteren Lernprogrammen anpassen.
Beabsichtigte Zielgruppe
Die Lernprogramme richten sich an ASP.NET Entwickler, die in Umgebungen arbeiten, in denen:
- Die Produktionsumgebung ist Azure App Service Web Apps oder ein Hostinganbieter eines Drittanbieters.
- Die Bereitstellung ist nicht auf einen kontinuierlichen Integrationsprozess beschränkt, kann aber direkt aus Visual Studio erfolgen.
Die Bereitstellung über die Quellcodeverwaltung mithilfe eines kontinuierlichen Übermittlungsprozesses wird in diesen Lernprogrammen nicht behandelt, außer in einem Lernprogramm, das zeigt, wie Sie über die Befehlszeile bereitstellen. Informationen zur kontinuierlichen Zustellung finden Sie in den folgenden Ressourcen:
- Kontinuierliche Integration und kontinuierliche Bereitstellung (Erstellen Real-World Cloud-Apps mit Windows Azure)
- Bereitstellen einer Web-App in Azure App Service
- Bereitstellen von Webanwendungen in Unternehmensszenarien (Eine ältere Gruppe von Lernprogrammen, die für Visual Studio 2010 geschrieben wurden, die weiterhin nützliche Informationen für Unternehmensumgebungen enthält.)
Verwenden eines Drittanbieterhostinganbieters
Die Lernprogramme führen Sie durch den Prozess der Einrichtung eines Azure-Kontos und die Bereitstellung der Anwendung für Web Apps in Azure App Service für Staging und Produktion. Sie können jedoch die gleichen grundlegenden Verfahren verwenden, um sie bei einem Drittanbieter-Hosting-Anbieter Ihrer Wahl bereitzustellen. Wo die Lernprogramme einzigartige Prozesse von Azure behandeln, erläutern und beraten sie Sie, welche Unterschiede Sie bei einem Drittanbieter erwarten können.
Bereitstellen von Web-App-Projekten
Die Beispielanwendung, die Sie für diese Lernprogramme herunterladen und bereitstellen, ist ein Visual Studio-Webanwendungsprojekt. Wenn Sie jedoch das neueste Web Publish Update für Visual Studio installieren, können Sie dieselben Bereitstellungsmethoden und -tools für Web-App-Projekte verwenden.
Bereitstellen von ASP.NET MVC-Projekten
Die Beispielanwendung ist ein ASP.NET Web Forms-Projekt, aber alles, was Sie tun können, gilt auch für ASP.NET MVC. Ein Visual Studio MVC-Projekt ist nur eine andere Form von Webanwendungsprojekt. Der einzige Unterschied besteht darin, dass Sie beim Bereitstellen auf einem Hostinganbieter, der ASP.NET MVC oder Ihre Zielversion davon nicht unterstützt, sicherstellen, dass Sie das entsprechende NuGet-Paket (MVC 3, MVC 4 oder MVC 5) in Ihrem Projekt installiert haben.
Programmiersprache
Die Beispielanwendung verwendet C#, aber die Lernprogramme benötigen keine Kenntnisse von C#, und die bereitstellungstechniken, die von den Lernprogrammen gezeigt werden, sind nicht sprachspezifisch.
Methoden für die Datenbankbereitstellung
Es gibt drei Möglichkeiten, wie Sie eine SQL Server-Datenbank zusammen mit der Webbereitstellung in Visual Studio bereitstellen können:
- Erste Migrationen von Entity Framework-Code
- Der dbDacFx Web Deploy-Anbieter
- Der DbFullSql Web Deploy-Anbieter
In diesem Lernprogramm verwenden Sie die ersten beiden Methoden. Der Anbieter "dbFullSql Web Deploy" ist eine Legacymethode, die nicht mehr empfohlen wird, mit Ausnahme bestimmter Szenarien wie der Migration von SQL Server Compact zu SQL Server.
Die in diesem Lernprogramm gezeigten Methoden gelten für SQL Server-Datenbanken, nicht für SQL Server Compact. Informationen zum Bereitstellen einer SQL Server Compact-Datenbank finden Sie unter Visual Studio Web Deployment With SQL Server Compact.
Die in diesem Lernprogramm gezeigten Methoden erfordern, dass Sie die Web Deploy-Veröffentlichungsmethode verwenden. Wenn Sie eine andere Veröffentlichungsmethode bevorzugen, z. B. FTP, Dateisystem oder FPSE, lesen Sie die Bereitstellung einer Datenbank getrennt von der Webanwendungsbereitstellung in der Webbereitstellungsinhaltszuordnung für Visual Studio und ASP.NET.
Erste Migrationen von Entity Framework-Code
In der Entity Framework-Version 4.3 hat Microsoft Code First-Migrationen eingeführt. Code First Migration automatisiert den Prozess, inkrementelle Änderungen an einem Datenmodell vorzunehmen und diese Änderungen an der Datenbank zu verteilen. In früheren Versionen von Code First lassen Sie in der Regel das Entity Framework ablegen und die Datenbank jedes Mal neu erstellen, wenn Sie das Datenmodell ändern. Dies ist kein Problem bei der Entwicklung, da Testdaten einfach neu erstellt werden, aber in der Produktion möchten Sie das Datenbankschema normalerweise aktualisieren, ohne die Datenbank zu löschen. Mit dem Migrationsfeature kann Code First die Datenbank aktualisieren, ohne sie zu löschen und erneut zu erstellen. Sie können Code First automatisch entscheiden lassen, wie die erforderlichen Schemaänderungen umzusetzen sind, oder Sie können Code erstellen, der die Änderungen anpasst. Eine Einführung in Code First-Migrationen finden Sie unter "Code First Migrationen".
Wenn Sie ein Webprojekt bereitstellen, kann Visual Studio den Prozess der Bereitstellung einer Datenbank automatisieren, die von Code First Migrationen verwaltet wird. Wenn Sie das Veröffentlichungsprofil erstellen, aktivieren Sie ein Kontrollkästchen mit der Bezeichnung "Code First Migrationen ausführen" (wird beim Starten der Anwendung ausgeführt). Diese Einstellung bewirkt, dass der Bereitstellungsprozess die Anwendung Web.config Datei auf dem Zielserver automatisch konfiguriert, sodass Code First die MigrateDatabaseToLatestVersion Initialisiererklasse verwendet.
Visual Studio führt während des Bereitstellungsprozesses keine Aktionen mit der Datenbank durch. Wenn die bereitgestellte Anwendung zum ersten Mal nach der Bereitstellung auf die Datenbank zugreift, erstellt Code First automatisch die Datenbank oder aktualisiert das Datenbankschema auf die neueste Version. Wenn die Anwendung eine Migrations Seed-Methode implementiert, wird die Methode ausgeführt, nachdem die Datenbank erstellt wurde oder das Schema aktualisiert wird.
In diesem Lernprogramm verwenden Sie Code First Migration, um die Anwendungsdatenbank bereitzustellen.
Der dbDacFx Web Deploy-Anbieter
Bei einer SQL Server-Datenbank, die nicht von Entity Framework Code First verwaltet wird, können Sie ein Kontrollkästchen aktivieren, das als Updatedatenbank bezeichnet wird, wenn Sie das Veröffentlichungsprofil konfigurieren. Während der erstbereitstellung erstellt der dbDacFx-Anbieter Tabellen und andere Datenbankobjekte in der Zieldatenbank, um der Quelldatenbank zu entsprechen. Bei nachfolgenden Bereitstellungen bestimmt der Anbieter, was zwischen quell- und Zieldatenbanken anders ist, und aktualisiert das Schema der Zieldatenbank so, dass es mit der Quelldatenbank übereinstimmt. Standardmäßig nimmt der Anbieter keine Änderungen vor, die zu Datenverlusten führen, z. B. wenn eine Tabelle oder Spalte gelöscht wird.
Diese Methode automatisiert nicht die Bereitstellung von Daten in Datenbanktabellen, Sie können jedoch Skripts erstellen, um dies zu tun und Visual Studio so zu konfigurieren, dass sie während der Bereitstellung ausgeführt werden. Ein weiterer Grund zum Ausführen von Skripts während der Bereitstellung besteht darin, Schemaänderungen vorzunehmen, die nicht automatisch ausgeführt werden können, da sie Datenverlust verursachen würden.
In diesem Lernprogramm verwenden Sie den dbDacFx-Anbieter, um die ASP.NET Mitgliedschaftsdatenbank bereitzustellen.
Fehlerbehebung in diesem Tutorial
Wenn während der Bereitstellung ein Fehler auftritt oder die bereitgestellte Website nicht ordnungsgemäß ausgeführt wird, stellen die Fehlermeldungen nicht immer eine offensichtliche Lösung bereit. Um Ihnen bei einigen gängigen Problemszenarien zu helfen, steht eine Referenzseite zur Problembehandlung zur Verfügung. Wenn beim Durchlaufen der Lernprogramme eine Fehlermeldung angezeigt wird oder etwas nicht funktioniert, überprüfen Sie unbedingt die Problembehandlungsseite.
Willkommen bei Kommentaren
Kommentare zu den Lernprogrammen sind willkommen, und wenn das Lernprogramm aktualisiert wird, werden alle Anstrengungen unternommen, um Korrekturen oder Vorschläge für Verbesserungen zu berücksichtigen, die in Tutorialkommentaren bereitgestellt werden.
Voraussetzungen
Dieses Lernprogramm wurde für die folgenden Produkte geschrieben:
- Windows 8 oder Windows 7.
- Visual Studio 2012 oder Visual Studio 2012 Express for Web mit dem neuesten Update.
- Azure SDK für Visual Studio 2012
Sie können dem Lernprogramm folgen, indem Sie Visual Studio 2010 SP1 oder Visual Studio 2013 verwenden, einige Screenshots sind jedoch unterschiedlich, und einige Features sind unterschiedlich.
Wenn Sie Visual Studio 2013 verwenden, installieren Sie das Azure SDK für Visual Studio 2013.
Wenn Sie Visual Studio 2010 SP1 verwenden, installieren Sie die folgende Software:
Je nachdem, wie viele der SDK-Abhängigkeiten, die Sie bereits auf Ihrem Computer haben, kann die Installation des Azure SDK eine lange Zeit dauern, von mehreren Minuten bis zu einer halben Stunde oder mehr. Sie benötigen das Azure SDK auch dann, wenn Sie die Veröffentlichung in einem Drittanbieterhostinganbieter anstelle von Azure planen, da das SDK die neuesten Updates für Visual Studio-Webveröffentlichungsfeatures enthält.
Hinweis
Dieses Lernprogramm wurde mit Version 1.8.1 des Azure SDK geschrieben. Seitdem wurden neuere Versionen mit zusätzlichen Features veröffentlicht. Die Lernprogramme wurden aktualisiert, um diese Funktionen zu erwähnen und auf Ressourcen zu verlinken, die weitere Informationen darüber enthalten.
Die Anweisungen und Screenshots basieren auf Windows 8, die Lernprogramme erläutern jedoch Unterschiede für Windows 7.
Einige andere Software ist erforderlich, um das Lernprogramm abzuschließen, aber Sie müssen diese noch nicht installiert haben. Das Lernprogramm führt Sie durch die Schritte für die Installation, wenn Sie es benötigen.
Herunterladen der Beispielanwendung
Die Anwendung, die Sie bereitstellen, heißt Contoso University und wurde bereits für Sie erstellt. Es handelt sich um eine vereinfachte Version einer Universitätswebsite, die lose auf der Contoso University-Anwendung basiert, die in den Entity Framework-Lernprogrammen auf der ASP.NET-Website beschrieben wird.
Wenn Sie die erforderlichen Komponenten installiert haben, laden Sie die Contoso University-Webanwendung herunter. Die .zip Datei enthält mehrere Versionen des Projekts. Um die Schritte des Lernprogramms zu durchlaufen, beginnen Sie mit dem Projekt im Ordner "C#". Um zu sehen, wie das Projekt am Ende der Lernprogramme aussieht, öffnen Sie das Projekt im Ordner ContosoUniversity-End.
Führen Sie die folgenden Schritte aus, um das Projekt vorzubereiten, um das Tutorial durchzuarbeiten:
Speichern Sie die ContosoUniversity-Lösungsdateien aus dem Ordner "C#" in einem Ordner namens "ContosoUniversity" in dem Ordner, den Sie für die Arbeit mit Visual Studio-Projekten verwenden.
Standardmäßig ist dies der folgende Ordner für Visual Studio 2012:
C:\Users\<username>\Documents\Visual Studio 2012\Projects(Für die Screenshots in diesem Lernprogramm befindet sich der Projektordner im Stammverzeichnis auf dem
CLaufwerk.)Starten Sie Visual Studio, und öffnen Sie das Projekt.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe und klicken Sie dann auf NuGet-Paketwiederherstellung aktivieren.
Erstellen Sie die Lösung.
Wenn Kompilierungsfehler auftreten, stellen Sie die NuGet-Pakete manuell wieder her:
- Im Lösungs-Explorer klicken Sie mit der rechten Maustaste auf die Lösung, und klicken Sie dann auf NuGet-Pakete für Lösung verwalten.
- Oben im Dialogfeld " NuGet-Pakete verwalten " wird angezeigt, dass einige NuGet-Pakete in dieser Lösung fehlen. Klicken Sie, um sie wiederherzustellen. Klicken Sie auf die Schaltfläche "Wiederherstellen ".
- Erstellen Sie die Lösung neu.
Drücken Sie CTRL-F5, um die Anwendung auszuführen.
Die Anwendung wird auf der Startseite der Contoso University geöffnet.
(Es kann eine Wartezeit geben, während Visual Studio die SQL Server Express LocalDB-Instanz startet, und Sie erhalten möglicherweise einen Timeoutfehler, wenn dieser Prozess zu lang dauert. Starten Sie in diesem Fall einfach das Projekt erneut.)
Auf die Websiteseiten kann über die Menüleiste zugegriffen werden, und Sie können die folgenden Funktionen ausführen:
- Anzeigen von Studentenstatistiken (die Info-Seite).
- Anzeigen, Bearbeiten, Löschen und Hinzufügen von Kursteilnehmern
- Anzeigen und Bearbeiten von Kursen.
- Kursleiter anzeigen und bearbeiten.
- Anzeigen und Bearbeiten von Abteilungen.
Im Folgenden finden Sie Screenshots einiger repräsentativer Seiten.
Überprüfung von Anwendungsfunktionen, die sich auf die Bereitstellung auswirken
Die folgenden Features der Anwendung wirken sich darauf aus, wie Sie sie bereitstellen oder was Sie tun müssen, um sie bereitzustellen. Jede dieser Elemente wird in den folgenden Lernprogrammen in der Reihe ausführlicher erläutert.
- Contoso University verwendet eine SQL Server-Datenbank zum Speichern von Anwendungsdaten wie Studenten- und Kursleiternamen. Die Datenbank enthält eine Mischung aus Testdaten und Produktionsdaten, und wenn Sie für die Produktion bereitstellen, müssen Sie die Testdaten ausschließen.
- Die Anwendung verwendet das ASP.NET Mitgliedschaftssystem, das Benutzerkontoinformationen in einer SQL Server-Datenbank speichert. Die Anwendung definiert einen Administratorbenutzer, der Zugriff auf einige eingeschränkte Informationen hat. Sie müssen die Mitgliedschaftsdatenbank ohne Testkonten, aber mit einem Administratorkonto bereitstellen.
- Die Anwendung verwendet ein Drittanbieterfehlerprotokollierungs- und Berichterstellungsprogramm. Dieses Hilfsprogramm wird in einer Assembly bereitgestellt, die mit der Anwendung bereitgestellt werden muss.
- Das Hilfsprogramm zur Fehlerprotokollierung schreibt Fehlerinformationen in XML-Dateien in einen Dateiordner. Sie müssen sicherstellen, dass das Konto, unter dem ASP.NET auf der bereitgestellten Website ausgeführt wird, über Schreibberechtigungen für diesen Ordner verfügt, und Sie müssen diesen Ordner von der Bereitstellung ausschließen. (Andernfalls könnten Fehlerprotokolldaten aus der Testumgebung in die Produktion übernommen werden und/oder Produktionsfehlerprotokolldateien könnten gelöscht werden.)
- Die Anwendung enthält einige Einstellungen, die in der bereitgestellten Web.config Datei geändert werden müssen, abhängig von der Zielumgebung (Test, Staging oder Produktion) und anderen Einstellungen, die je nach Buildkonfiguration (Debug oder Release) geändert werden müssen.
- Die Visual Studio-Projektmappe enthält ein Klassenbibliotheksprojekt. Nur die Assembly, die dieses Projekt generiert, sollte bereitgestellt werden, nicht das Projekt selbst.
Zusammenfassung
In diesem ersten Tutorial der Serie haben Sie das Visual Studio-Beispielprojekt heruntergeladen und die Funktionen der Website überprüft, die sich auf die Bereitstellung und Implementierung der Anwendung auswirken. In den folgenden Tutorials bereiten Sie sich auf die Bereitstellung vor, indem Sie einige dieser Dinge einrichten, die automatisch behandelt werden sollen. Andere, die Sie manuell erledigen.