Exemplarische Vorgehensweise: Bereitstellen eines Webanwendungsprojekts mit einem Webbereitstellungspaket (Teil 2 von 4)
Dies ist die zweite in einer Reihe von exemplarischen Vorgehensweisen, in denen die Bereitstellung eines Webanwendungsprojekts mit einem Bereitstellungspaket erörtert wird. Weitere Informationen über die Reihe finden Sie unter Exemplarische Vorgehensweise: Bereitstellen eines Webanwendungsprojekts mit einem Webbereitstellungspaket (Teil 1 von 4).
In dieser exemplarischen Vorgehensweise ändern Sie die Datenbank AdventureWorksLT und stellen die Änderungen bereit. Anschließend ändern Sie eine Webseite und stellen die Änderungen bereit, ohne jedoch die Datenbankänderungen bereitzustellen. In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:
Erneute Bereitstellung einer Datenbank, die bereits bereitgestellt wurde.
Ausschluss einer bereits bereitgestellten Datenbank von der Bereitstellung.
Erstellen eines Pakets für die Debugbuildkonfiguration.
Installieren eines Pakets auf dem lokalen Computer mit IIS-Manager.
Vorbereitungsmaßnahmen
Eine Liste der Voraussetzungen finden Sie unter Exemplarische Vorgehensweise: Bereitstellen eines Webanwendungsprojekts mit einem Webbereitstellungspaket (Teil 1 von 4).
Konfigurieren der Bereitstellung für Datenbankänderungen
Wenn Sie eine Datenbankänderung (entweder struktur- oder datenbezogen) für eine Webanwendung bereitstellen möchten, die bereits bereitgestellt wurde, und wenn Sie keine Daten beibehalten müssen, die in der bereitgestellten Datenbank eingegeben wurden, können Sie die Datenbank mit automatisch generierten Skripts erneut bereitstellen. Allerdings werden von automatisch generierten Skripts standardmäßig keine Datenbankobjekte gelöscht, bevor sie auf dem Zielcomputer erstellt bzw. erneut erstellt wurden. Daher müssen Sie angeben, dass Drop-Anweisungen eingeschlossen werden sollen, um Fehler zu vermeiden, die beim Versuch der Erstellung von bereits vorhandenen Datenbankobjekten durch Skripts entstehen würden.
In diesem Abschnitt der exemplarischen Vorgehensweise nehmen Sie eine Änderung an der Struktur der Datenbank AdventureWorksLT vor. Anschließend stellen Sie die Webanwendung erneut bereit. Sie ändern Datenbankbereitstellungseinstellungen, damit die automatisch generierten Skripts für die Datenbank AdventureWorksLT Drop-Anweisungen enthalten, und damit während der Bereitstellung keine anderen Datenbankskripts ausgeführt werden.
In der folgenden Prozedur ändern Sie den Namen des Felds Farbe in der Datenbank und der Datei Default.aspx in Darstellung.
So ändern Sie den Namen eines Datenbankfelds
Erweitern Sie in Server-Explorer den Ordner App_Data, und doppelklicken Sie auf AdventureWorksLT2008_Data.mdf.
Die Datenbank wird im Fenster Server-Explorer geöffnet.
Erweitern Sie in Server-Explorer den Ordner Tabellen.
Klicken Sie mit der rechten Maustaste auf die Tabelle Product (SalesLT) und dann auf Tabellendefinition öffnen.
Ändern Sie den Namen der Spalte Farbe in Darstellung, wie im folgenden Beispiel gezeigt:
Speichern Sie die Tabelle, und schließen Sie das Fenster Tabellendefinition.
Öffnen Sie die Datei Default.aspx.
Suchen Sie im GridView-Steuerelement für die Spalte Farbe das BoundField-Element, und ändern Sie den Wert der Eigenschaften DataField, SortExpression und HeaderText von Farbe in Darstellung, wie im folgenden Beispiel gezeigt:
<asp:BoundField DataField="Appearance" HeaderText="Appearance" SortExpression="Appearance" />
Speichern und schließen Sie Default.aspx.
Drücken Sie zum Testen der Änderungen STRG+F5.
Die Homepage wird angezeigt. Die Spalte Farbe wurde in Darstellung umbenannt, wie in der folgenden Abbildung gezeigt:
In der folgenden Prozedur konfigurieren Sie die Bereitstellung, damit Drop-Anweisungen für die Datenbank AdventureWorksLT generiert werden. Sie müssen dafür die Projektdatei ändern, da die Einstellung auf der Visual Studio-Benutzeroberfläche nicht verfügbar ist.
So geben Sie an, dass Drop-Anweisungen eingeschlossen werden sollten
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Ordner in Windows Explorer öffnen.
Ein Windows-Explorer-Fenster wird für den Projektordner geöffnet.
Öffnen Sie AdventureWorks.csproj oder AdventureWorks.vbproj mithilfe eines Text-Editors wie z. B. Editor.
Suchen Sie das PropertyGroup-Element, das für die Debug-Buildkonfiguration und AnyCPU-Plattform vorgesehen ist.
Dieses Element enthält die Einstellungen, die Sie auf den Registerkarten Web packen/veröffentlichen und den SQL packen/veröffentlichen in der Einstellung Eigenschaften für das Projekt eingegeben haben.
Suchen Sie im PropertyGroup-Element das ObjectGroup-Element, das über den Namen AWLTConnectionString-Deployment verfügt.
Dieses Element enthält die Einstellungen auf der Registerkarte SQL packen/veröffentlichen, die die Datenbank AdventureWorksLT betreffen.
Fügen Sie im ObjectGroup-Element ein ScriptDropsFirst="True"-Attribut zum PreSource-Element hinzu, das sich im ersten Object-Element befindet.
Im folgenden Beispiel wird das PropertyGroup-Element, das das geänderte PreSource-Element enthält, gezeigt. (Einige der Details im Element in der Projektdatei unterscheiden sich ein wenig von diesem Beispiel.)
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> ... <PublishDatabaseSettings> ... <Objects> ... <ObjectGroup Name="AWLTConnectionString-Web.config" Order="2"> <Destination Path="..." /> <Object Type="dbFullSql"> <PreSource Path="..." ScriptSchema="True" ScriptData="True" CopyAllFullTextCatalogs="False" ScriptDropsFirst="True"/> <Source Path="..." Transacted="True" /> </Object> <Object Type="dbFullSql" Enabled="True"> <Source Path="...AdventureWorksGrant.sql" Transacted="True" /> </Object> </ObjectGroup> </Objects> </PublishDatabaseSettings> </PropertyGroup>
Speichern und schließen Sie die Datei AdventureWorks.csproj oder AdventureWorks.vbproj.
Wenn Sie ein Dialogfeld mit dem Namen Dateiänderung festgestellt angezeigt wird (siehe folgende Abbildung), klicken Sie auf die Schaltfläche Erneut laden.
In der folgenden Prozedur geben Sie an, dass die Datenbankskripts nicht ausgeführt werden sollen. Dies schließt das automatisch generierte Skript für die Datenbank ApplicationServices und das Skript AdventureWorksGrant.sql ein.
So geben Sie an, dass während der Bereitstellung keine anderen Skripts ausgeführt werden sollen
Klicken Sie auf der Projektseite Eigenschaften auf die Registerkarte SQL packen/veröffentlichen.
Stellen Sie in der Liste Konfiguration sicher, dass Aktiv (Debuggen) ausgewählt ist.
Stellen Sie im Raster Datenbankeinträge sicher, dass die Zeile ApplicationServices-Deployment ausgewählt wurde.
Deaktivieren Sie im Raster Datenbankskripts das Kontrollkästchen Einschließen für die Zeile, in der in der Spalte Skriptpfad die Einstellung [Automatisch generiertes Schema und Daten] festgelegt ist (siehe folgende Abbildung).
Wählen Sie im Raster Datenbankeinträge die Zeile AWLTConnectionString-Deployment aus.
Deaktivieren Sie im Raster Datenbankskripts das Kontrollkästchen Einschließen für die Zeile ein, die das Skript AdventureWorksGrant.sql besitzt.
Speichern und schließen Sie die Seite Eigenschaften.
Bereitstellen von Datenbankänderungen
In der folgenden Prozedur stellen Sie das Projekt durch Erstellen eines Pakets und anschließendes Importieren des Pakets in IIS mithilfe von IIS-Manager bereit.
So erstellen Sie ein Paket und importieren es in IIS
Klicken Sie im Menü Projekt auf Bereitstellungspaket erstellen.
Visual Studio erstellt das Projekt und anschließend das Bereitstellungspaket. Skripts, die Drop-Anweisungen enthalten, werden für die Datenbank AdventureWorksLT erstellt. Für die Datenbank ApplicationServices werden keine Skripts erstellt.
Kopieren Sie den Pfad des Bereitstellungspakets in die Windows-Zwischenablage, indem Sie folgende Schritte ausführen:
Wenn Sie den Ordner obj nicht sehen, klicken Sie in Projektmappen-Explorer auf die Schaltfläche Alle Dateien anzeigen.
Erweitern Sie den Ordner obj und den Ordner Debug und anschließend den Ordner Package.
Wählen Sie die Datei AdventureWorks.zip aus.
Kopieren Sie im Fenster Eigenschaften den Wert der Eigenschaft Vollständiger Pfad.
Klicken Sie in der Windows-Systemsteuerung auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager.
Erweitern Sie im Bereich Verbindungen des IIS-Managers den Knoten für den Computer, erweitern Sie den Ordner Websites, und wählen Sie dann Standardwebsite aus.
Klicken Sie im Bereich Aktionen auf den Link Anwendung importieren.
Fügen Sie in das Feld Paketpfad des Dialogfelds Paket auswählen den Pfad des Bereitstellungspakets ein.
Klicken Sie auf Weiter.
Klicken Sie im Dialogfeld Wählen Sie den Inhalt des Pakets aus auf Weiter.
Klicken Sie im Dialogfeld Anwendungspaketinformationen eingeben auf Weiter.
Klicken Sie im Dialogfeld Vorhandene Dateien überschreiben auf Weiter.
Nach Fertigstellung der Paketinstallation wird im Dialogfeld Installationsfortschritt und Zusammenfassung angezeigt, dass nur eine Datenbank aktualisiert wurde, wie in der folgenden Abbildung gezeigt:
Testen Sie die Anwendung durch Öffnen eines Browsers und Wechseln zur folgenden URL:
https://localhost/AdventureWorks
Die Seite Default.aspx wird angezeigt. Die Seite sieht so aus wie bei der Ausführung des Projekts in Visual Studio. In der Produkttabelle wird anstelle der Spalte Farbe die Spalte Darstellung angezeigt. Dies zeigt, dass die Änderung an der Datenbank AdventureWorksLT erfolgreich bereitgestellt wurde.
Erneute Bereitstellung ohne Datenbankänderungen
Datenbankstrukturen werden in der Regel seltener als andere Teile einer Webanwendung geändert. In diesem Abschnitt der exemplarischen Vorgehensweise ändern Sie eine Webseite und stellen die Webanwendung erneut bereit, aber Sie stellen keine Datenbankänderungen bereit.
In der folgenden Prozedur ändern Sie die Überschrift der ersten Spalte in der AdventureWorksLT-Produkttabelle auf der Seite Default.aspx von Name in Produkt.
So nehmen Sie eine Änderung an der Anwendung vor
Öffnen Sie die Datei Default.aspx.
Ändern Sie die BoundField.HeaderText-Eigenschaft für die Spalte Name in Produkt, wie im folgenden Beispiel gezeigt:
<asp:BoundField DataField="Name" HeaderText="Product" SortExpression="Name" />
Speichern und schließen Sie die Datei.
In der folgenden Prozedur ändern Sie Datenbankbereitstellungseinstellungen, um sicherzustellen, dass Visual Studio keine Datenbankskripts generiert.
So deaktivieren Sie die Datenbankbereitstellung
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Eigenschaften.
Klicken Sie auf die Registerkarte Web packen/veröffentlichen.
Deaktivieren Sie das Kontrollkästchen Alle auf der Registerkarte "SQL packen/veröffentlichen" konfigurierten Datenbanken einschließen.
Speichern und schließen Sie die Seite Eigenschaften.
In der folgenden Prozedur stellen Sie die Anwendung erneut bereit und testen die Änderungen.
So führen Sie eine erneute Bereitstellung und einen Test der Anwendung aus
Klicken Sie im Menü Projekt auf Bereitstellungspaket erstellen.
Kopieren Sie den Bereitstellungspaketpfad in die Windows-Zwischenablage.
Führen Sie Internetinformationsdienste (IIS)-Manager aus.
Wählen Sie in IIS-Manager die Option Standardwebsite aus.
Klicken Sie im Bereich Aktionen auf den Link Anwendung importieren.
Fügen Sie in das Feld Paketpfad des Dialogfelds Paket auswählen den Pfad des Bereitstellungspakets ein.
Klicken Sie auf Weiter.
Klicken Sie im Dialogfeld Wählen Sie den Inhalt des Pakets aus auf Weiter.
Klicken Sie im Dialogfeld Anwendungspaketinformationen eingeben auf Weiter.
Klicken Sie im Dialogfeld Vorhandene Dateien überschreiben auf Weiter.
Dieses Mal wird im Dialogfeld Installationsfortschritt und Zusammenfassung angezeigt, dass keine Datenbanken aktualisiert wurden und dass nur eine Datei aktualisiert wurde.
Testen Sie die Anwendung durch Öffnen eines Browsers und Wechseln zur folgenden URL:
https://localhost/AdventureWorks
Die Seite Default.aspx sieht erneut genauso aus wie bei der Ausführung in Visual Studio. Die Überschrift Produkt in der ersten Spalte der Produkttabelle veranschaulicht, dass die Änderung an der Seite Default.aspx erfolgreich bereitgestellt wurde.
Nächste Schritte
In der ersten exemplarischen Vorgehensweise in dieser Reihe haben Sie ein Dateisystem-Webanwendungsprojekt für eine IIS-Webanwendung zu Testzwecken auf dem Entwicklungscomputer bereitgestellt. In dieser exemplarischen Vorgehensweise haben Sie die Struktur von einer der Datenbanken sowie Webseiten geändert und die Änderungen bereitgestellt.
Die nächste exemplarische Vorgehensweise in der Reihe ist Exemplarische Vorgehensweise: Bereitstellen eines Webanwendungsprojekts mit einem Webbereitstellungspaket (Teil 3 von 4). In dieser exemplarischen Vorgehensweise erstellen Sie ein Bereitstellungspaket, das verwendet werden kann, um Bereitstellungen in einer Stagingumgebung und auf einem Produktionsserver auszuführen.