Freigeben über


Bereitstellen einer ASP.NET Webanwendung mit SQL Server Compact mithilfe von Visual Studio oder Visual Web Developer: Bereitstellen eines Code-Only Updates – 8 von 12

von Tom Dykstra

Herunterladen des Starterprojekts

In dieser Reihe von Tutorials erfahren Sie, wie Sie mithilfe von Visual Studio 2012 RC oder Visual Studio Express 2012 RC für Web ein ASP.NET Webanwendungsprojekt bereitstellen (veröffentlichen), das eine SQL Server Compact-Datenbank 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 Tutorial der Reihe.

Ein Tutorial, das bereitstellungsfeatures zeigt, die nach der RC-Version von Visual Studio 2012 eingeführt wurden, zeigt, wie SQL Server anderen Editionen als SQL Server Compact bereitgestellt werden, und zeigt, wie sie in Azure App Service Web-Apps bereitgestellt werden, finden Sie unter ASP.NET Webbereitstellung mit Visual Studio.

Überblick

Nach der ersten Bereitstellung werden Die Arbeit zur Wartung und Entwicklung Ihrer Website fortgesetzt, und sie möchten bald ein Update bereitstellen. Dieses Tutorial führt Sie durch den Prozess der Bereitstellung eines Updates für Ihren Anwendungscode. Dieses Update beinhaltet keine Datenbankänderung. Im nächsten Tutorial erfahren Sie, was beim Bereitstellen einer Datenbankänderung anders ist.

Erinnerung: Wenn Sie eine Fehlermeldung erhalten oder etwas nicht funktioniert, während Sie das Tutorial durchlaufen, überprüfen Sie unbedingt die Seite zur Problembehandlung.

Vornehmen einer Codeänderung

Als einfaches Beispiel für eine Aktualisierung Ihrer Anwendung fügen Sie der Seite Dozenten eine Liste der Kurse hinzu, die vom ausgewählten Dozenten unterrichtet werden.

Wenn Sie die Seite "Dozenten " ausführen, werden Sie feststellen, dass im Raster Links auswählen vorhanden sind, die aber nichts anderes tun, als den Zeilenhintergrund grau zu machen.

Instructors_page

Nun fügen Sie Code hinzu, der ausgeführt wird, wenn auf den Link Auswählen geklickt wird, und zeigt eine Liste der Kurse an, die vom ausgewählten Dozenten unterrichtet werden.

Fügen Sie in Instructors.aspx das folgende Markup unmittelbar nach dem ErrorMessageLabel-SteuerelementLabel 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 Dozenten aus. Es wird eine Liste der Kurse angezeigt, die von diesem Dozenten unterrichtet werden.

Instructors_page_with_courses

Bereitstellen des Codeupdates in der Testumgebung

Die Bereitstellung in der Testumgebung ist eine einfache Angelegenheit, um die Veröffentlichung mit einem Klick erneut auszuführen. Um diesen Vorgang schneller zu gestalten, können Sie die Web-Symbolleiste 1-Klick-Veröffentlichung verwenden.

Wählen Sie im Menü Ansichtdie Option Symbolleisten und dann Web One Click Veröffentlichen aus.

Selecting_One_Click_Publish_toolbar

Wählen Sie in Projektmappen-Explorer das Projekt ContosoUniversity aus.

Wählen Sie auf der Symbolleiste Web One Click Publish (Web one Click Publish ) das Profil Testveröffentlichung aus, und klicken Sie dann auf Web veröffentlichen (das Symbol mit pfeilenden Pfeilen, die nach links und rechts zeigen).

Web_One_Click_Publish_toolbar

Visual Studio stellt die aktualisierte Anwendung bereit, und der Browser wird automatisch mit der Startseite geöffnet. Führen Sie die Seite Dozenten aus, und wählen Sie einen Dozenten aus, um zu überprüfen, ob das Update erfolgreich bereitgestellt wurde.

Instructors_page_with_courses_Test

Normalerweise würden Sie auch Regressionstests durchführen (d. a. testen Sie den Rest der Website, um sicherzustellen, dass die neue Änderung keine vorhandenen Funktionen beeinträchtigt hat). Für dieses Tutorial überspringen Sie diesen Schritt jedoch und fahren mit der Bereitstellung des Updates in der Produktion fort.

Verhindern der erneuten Bereitstellung des anfänglichen Datenbankzustands in der 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 ursprünglichen Zustand erneut bereitstellen, wodurch alle Livedaten gelöscht würden. 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 Paket/Web veröffentlichen aus. 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.

Exclude_files_from_the_App_Data_folder

Falls Sie sich entscheiden, in Zukunft einen Debugbuild bereitzustellen, empfiehlt es sich, die gleiche Änderung für die Debugbuildkonfiguration vorzunehmen: Ändern Sie 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 in Ihren Veröffentlichungsprofilen keine zusätzlichen Dateien am Ziel entfernen ausgewählt haben. Wenn Sie diese Option auswählen, löscht der Bereitstellungsprozess die Datenbanken, die Sie in App_Data am bereitgestellten Standort haben, und der ordner App_Data selbst wird gelöscht.

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 Die Anwendung auszuführen. Um den Zugriff während der Bereitstellung zu verhindern, legen Sie app_offline.htm in den Stammordner, führen den Bereitstellungsprozess aus und entfernen dann app_offline.htm.

Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe (nicht auf eines der Projekte), und wählen Sie Neuer Projektmappenordner aus.

Creating_a_solution_folder

Nennen 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 auf die Website kopieren, indem Sie eine FTP-Verbindung oder das Datei-Manager-Hilfsprogramm in der Systemsteuerung des Hostinganbieters verwenden. In diesem Tutorial verwenden Sie den Datei-Manager.

Öffnen Sie die Systemsteuerung, und wählen Sie Datei-Manager wie im Tutorial 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.

Upload_button_in_File_Manager

Wählen Sie im Dialogfeld Datei hochladen die app_offline.htm Datei aus, und klicken Sie dann auf Hochladen.

Upload_dialog_box_in_File_Manager

Wechseln Sie zur URL Ihrer Site. Sie sehen, dass die app_offline.htm Seite jetzt anstelle Ihrer Startseite angezeigt wird.

App_offline.htm_page_in_production

Sie können jetzt in der Produktion bereitstellen.

Bereitstellen des Codeupdates in der Produktionsumgebung

Wählen Sie auf der Symbolleiste Web One Click Publish (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 dateiapp_offline.htm 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.htmaus, und klicken Sie dann auf Löschen.

Deleting_app_offline.htm

Öffnen Sie im Browser die Seite Dozenten auf der öffentlichen Website, und wählen Sie einen Dozenten aus, um zu überprüfen, ob das Update erfolgreich bereitgestellt wurde.

Instructors_page_with_courses_Prod

Sie haben nun ein Anwendungsupdate bereitgestellt, das keine Datenbankänderung beinhaltete. Im nächsten Tutorial erfahren Sie, wie Sie eine Datenbankänderung bereitstellen.