Bereitstellen einer ASP.NET Webanwendung mit SQL Server Compact mit Visual Studio oder Visual Web Developer: Bereitstellen eines Nur-Code-Updates – 8 von 12
Von Tom Dykstra
In dieser Reihe von Lernprogrammen erfahren Sie, wie Sie ein ASP.NET Webanwendungsprojekt bereitstellen (veröffentlichen), das eine SQL Server Compact-Datenbank mit Visual Studio 2012 RC oder Visual Studio Express 2012 RC für Web enthält. Sie können Visual Studio 2010 auch verwenden, wenn Sie das Web Publish Update installieren. Eine Einführung in die Reihe finden Sie im ersten Lernprogramm in der Reihe.
Ein Lernprogramm, in dem Bereitstellungsfeatures gezeigt werden, die nach der RC-Version von Visual Studio 2012 eingeführt wurden, zeigt, wie Sie andere SQL Server-Editionen als SQL Server Compact bereitstellen und wie Sie mithilfe von Visual Studio Azure-App Service-Web-Apps bereitstellen ASP.NET.
Übersicht
Nach der erstbereitstellung wird Ihre Arbeit zur Wartung und Entwicklung Ihrer Website fortgesetzt, und bevor Sie lange ein Update bereitstellen möchten. Dieses Lernprogramm führt Sie durch den Prozess der Bereitstellung eines Updates für Ihren Anwendungscode. Bei dieser Aktualisierung handelt es sich nicht um eine Datenbankänderung; Im nächsten Lernprogramm sehen Sie, was sich bei der Bereitstellung einer Datenbankänderung unterscheidet.
Erinnerung: Wenn Beim Durchlaufen des Lernprogramms eine Fehlermeldung angezeigt wird oder etwas nicht funktioniert, überprüfen Sie unbedingt die Problembehandlungsseite.
Erstellen einer Codeänderung
Als einfaches Beispiel für eine Aktualisierung Ihrer Anwendung fügen Sie der Seite "Kursleiter" eine Liste der Kurse hinzu, die vom ausgewählten Kursleiter unterrichtet werden.
Wenn Sie die Seite "Kursleiter" ausführen, werden Sie feststellen, dass im Raster "Auswählen" Verknüpfungen vorhanden sind, aber sie tun nichts anderes, als den Zeilenhintergrund grau zu machen.
Jetzt fügen Sie Code hinzu, der ausgeführt wird, wenn auf den Link "Auswählen " geklickt wird, und eine Liste der Kurse anzeigt, die vom ausgewählten Kursleiter unterrichtet werden.
Fügen Sie in Instructors.aspx das folgende Markup unmittelbar nach dem ErrorMessageLabel-Steuerelement Label
hinzu:
<h3>Courses Taught</h3>
<asp:ObjectDataSource ID="CoursesObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
DataObjectTypeName="ContosoUniversity.DAL.Course" SelectMethod="GetCoursesByInstructor">
<SelectParameters>
<asp:ControlParameter ControlID="InstructorsGridView" Name="PersonID" PropertyName="SelectedDataKey.Value"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="CoursesGridView" runat="server" DataSourceID="CoursesObjectDataSource"
AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray"
DataKeyNames="CourseID">
<EmptyDataTemplate>
<p>No courses found.</p>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="CourseID" HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:TemplateField HeaderText="Department" SortExpression="DepartmentID">
<ItemTemplate>
<asp:Label ID="GridViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Führen Sie die Seite aus, und wählen Sie einen Kursleiter aus. Sie sehen eine Liste der Kurse, die von diesem Kursleiter unterrichtet werden.
Bereitstellen des Codeupdates in der Testumgebung
Die Bereitstellung in der Testumgebung ist eine einfache Angelegenheit, um die Veröffentlichung mit nur einem Klick erneut auszuführen. Um diesen Prozess schneller zu gestalten, können Sie die Symbolleiste "Web One Click Publish " verwenden.
Wählen Sie im Menü "Ansicht" die Symbolleisten und dann "Web One Click Publish" aus.
Wählen Sie in Projektmappen-Explorer das Projekt ContosoUniversity aus.
die Symbolleiste "Web One Click Publish ", wählen Sie das Veröffentlichungsprofil "Testen " aus, und klicken Sie dann auf "Web veröffentlichen" (das Symbol mit Pfeilen, die nach links und rechts zeigen).
Visual Studio stellt die aktualisierte Anwendung bereit, und der Browser wird automatisch auf der Startseite geöffnet. Führen Sie die Seite "Kursleiter" aus, und wählen Sie einen Kursleiter aus, um zu überprüfen, ob das Update erfolgreich bereitgestellt wurde.
Normalerweise würden Sie auch Regressionstests durchführen (d. h., testen Sie den Rest der Website, um sicherzustellen, dass die neue Änderung keine vorhandenen Funktionen nicht unterbricht). Für dieses Lernprogramm überspringen Sie diesen Schritt, und fahren Sie mit der Bereitstellung des Updates in der Produktion fort.
Verhindern der erneuten Bereitstellung des anfänglichen Datenbankstatus für die Produktion
In einer echten Anwendung interagieren Benutzer nach der ersten Bereitstellung mit Ihrer Produktionswebsite, und die Datenbanken werden mit Livedaten aufgefüllt. Daher möchten Sie die Mitgliedschaftsdatenbank nicht im Anfangszustand erneut bereitstellen, wodurch alle Livedaten gelöscht werden. Da SQL Server Compact-Datenbanken Dateien im ordner App_Data sind, müssen Sie dies verhindern, indem Sie die Bereitstellungseinstellungen ändern, sodass Dateien im ordner App_Data nicht bereitgestellt werden.
Öffnen Sie das Fenster "Projekteigenschaften " für das Projekt "ContosoUniversity", und wählen Sie die Registerkarte "Web veröffentlichen". Stellen Sie sicher, dass im Dropdownfeld "Konfiguration " entweder "Aktiv " (Release) oder "Release " ausgewählt ist, wählen Sie "Dateien aus dem ordner App_Data ausschließen" aus.
Falls Sie sich für die zukünftige Bereitstellung eines Debugbuilds entscheiden, empfiehlt es sich, die gleiche Änderung für die Debugbuildkonfiguration vorzunehmen: Ändern Sie die Konfiguration in "Debuggen ", und wählen Sie dann "Dateien aus dem ordner App_Data ausschließen" aus.
Speichern und schließen Sie die Registerkarte "Paket/Web veröffentlichen".
Hinweis
Wichtig
Stellen Sie sicher, dass sie keine zusätzlichen Dateien am Ziel ausgewählt haben, die in Ihren Veröffentlichungsprofilen ausgewählt sind. Wenn Sie diese Option auswählen, löscht der Bereitstellungsprozess die Datenbanken, die Sie in App_Data auf der bereitgestellten Website haben, und er löscht den App_Data Ordner selbst.
Verhindern des Benutzerzugriffs auf die Produktionswebsite während des Updates
Die änderung, die Sie jetzt bereitstellen, ist eine einfache Änderung an einer einzelnen Seite. Manchmal stellen Sie jedoch größere Änderungen bereit, und in diesem Fall kann sich die Website seltsam verhalten, wenn ein Benutzer eine Seite anfordert, bevor die Bereitstellung abgeschlossen ist. Um dies zu verhindern, können Sie eine app_offline.htm Datei verwenden. Wenn Sie eine Datei namens app_offline.htm im Stammordner Ihrer Anwendung ablegen, zeigt IIS diese Datei automatisch an, anstatt Ihre Anwendung auszuführen. Um den Zugriff während der Bereitstellung zu verhindern, setzen Sie app_offline.htm in den Stammordner, führen Sie den Bereitstellungsprozess aus, und entfernen Sie dann app_offline.htm.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe (keines der Projekte), und wählen Sie "Neuer Projektmappenordner" aus.
Benennen Sie den Ordner SolutionFiles.
Erstellen Sie im neuen Ordner eine HTML-Seite mit dem Namen app_offline.htm. Ersetzen Sie den vorhandenen Inhalt durch das folgende Markup:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contoso University - Under Construction</title>
</head>
<body>
<h1>Contoso University</h1>
<h2>Under Construction</h2>
<p>The Contoso University site is temporarily unavailable while we upgrade it. Please try again later.</p>
</body>
</html>
Sie können die app_offline.htm Datei mithilfe einer FTP-Verbindung oder des Datei-Manager-Dienstprogramms in der Systemsteuerung des Hostinganbieters auf die Website kopieren. In diesem Lernprogramm verwenden Sie den Datei-Manager.
Öffnen Sie die Systemsteuerung, und wählen Sie den Datei-Manager wie im Lernprogramm "Bereitstellen in der Produktionsumgebung " aus. Wählen Sie contosouniversity.com und dann "wwwroot" aus, um zum Stammordner Ihrer Anwendung zu gelangen, und klicken Sie dann auf "Hochladen".
Wählen Sie im Dialogfeld "Datei hochladen" die app_offline.htm Datei aus, und klicken Sie dann auf " Hochladen".
Wechseln Sie zur URL Ihrer Site. Sie sehen, dass die app_offline.htm Seite jetzt anstelle Ihrer Startseite angezeigt wird.
Sie können jetzt für die Produktion bereitstellen.
Bereitstellen des Codeupdates in der Produktionsumgebung
Wählen Sie in der Symbolleiste "Web One Click Publish" das Produktionsveröffentlichungsprofil aus, und klicken Sie dann auf "Web veröffentlichen".
Visual Studio stellt die aktualisierte Anwendung bereit und öffnet den Browser auf der Startseite der Website. Die app_offline.htm Datei wird angezeigt. Bevor Sie testen können, um die erfolgreiche Bereitstellung zu überprüfen, müssen Sie die app_offline.htm Datei entfernen.
Kehren Sie zur Datei-Manager-Anwendung in der Systemsteuerung zurück. Wählen Sie contosouniversity.com und wwwroot aus, wählen Sie app_offline.htm aus, und klicken Sie dann auf "Löschen".
Öffnen Sie im Browser die Seite "Kursleiter" auf der öffentlichen Website, und wählen Sie einen Kursleiter aus, um zu überprüfen, ob das Update erfolgreich bereitgestellt wurde.
Sie haben jetzt ein Anwendungsupdate bereitgestellt, das keine Datenbankänderung umfasste. Das nächste Lernprogramm zeigt, wie Sie eine Datenbankänderung bereitstellen.