Share via


Bereitstellen einer ASP.NET Webanwendung mit SQL Server Compact mithilfe von Visual Studio oder Visual Web Developer: Bereitstellen in der Produktionsumgebung – 7 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

In diesem Tutorial richten Sie ein Konto bei einem Hostinganbieter ein und stellen Ihre ASP.NET Webanwendung in der Produktionsumgebung bereit, indem Sie das 1-Klick-Veröffentlichungsfeature von Visual Studio verwenden.

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

Auswählen eines Hostinganbieters

Für die Contoso University-Anwendung und diese Tutorialreihe benötigen Sie einen Anbieter, der ASP.NET 4 und Web Deploy unterstützt. Ein bestimmtes Hosting-Unternehmen wurde ausgewählt, damit die Tutorials die vollständige Erfahrung der Bereitstellung auf einer Live-Website veranschaulichen konnten. Jedes Hostingunternehmen bietet unterschiedliche Features, und die Erfahrung der Bereitstellung auf seinen Servern variiert etwas. Der in diesem Tutorial beschriebene Prozess ist jedoch typisch für den gesamten Prozess. Der für dieses Tutorial verwendete Hostinganbieter Cytanium.com ist einer von vielen verfügbar, und seine Verwendung in diesem Tutorial stellt keine Empfehlung oder Empfehlung dar.

Wenn Sie bereit sind, Ihren eigenen Hostinganbieter auszuwählen, können Sie Features und Preise im Katalog der Anbieter auf der Microsoft.com/web Website vergleichen.

Erstellen eines Kontos

Erstellen Sie ein Konto bei Ihrem ausgewählten Anbieter. Wenn die Unterstützung für eine vollständige SQL Server-Datenbank hinzugefügt wurde, müssen Sie sie für dieses Tutorial nicht auswählen, aber Sie benötigen sie für das Tutorial Migrieren zu SQL Server später in dieser Reihe.

Für diese Tutorials müssen Sie keinen neuen Domänennamen registrieren. Sie können testen, um die erfolgreiche Bereitstellung mithilfe der temporären URL zu überprüfen, die der Website vom Anbieter zugewiesen wurde.

Nachdem das Konto erstellt wurde, erhalten Sie in der Regel eine Willkommens-E-Mail mit allen Informationen, die Sie zum Bereitstellen und Verwalten Ihrer Website benötigen. Die Informationen, die Ihr Hostinganbieter Ihnen sendet, ähneln den hier gezeigten Informationen. Die Cytanium-Willkommens-E-Mail, die an neue Kontobesitzer gesendet wird, enthält die folgenden Informationen:

  • Die URL zur Systemsteuerungswebsite des Anbieters, auf der Sie Einstellungen für Ihre Website verwalten können. Die id und das kennwort, die Sie angegeben haben, sind in diesem Teil der Willkommens-E-Mail zur einfachen Referenz enthalten. (Beide wurden für diese Abbildung in einen Demowert geändert.)

    Welcome_Email_Control_Panel_URL

  • Die Standardversion .NET Framework und Informationen zur Änderung. Viele Hostingwebsites sind standardmäßig 2.0. Dies funktioniert mit ASP.NET Anwendungen, die auf die .NET Framework 2.0, 3.0 oder 3.5 ausgerichtet sind. Contoso University ist jedoch eine .NET Framework 4-Anwendung, sodass Sie diese Einstellung ändern müssen. (Für eine ASP.NET 4.5-Anwendung würden Sie die .NET 4.0-Einstellung verwenden.)

    Welcome_Email_Framework_Version

  • Die temporäre URL, die Sie für den Zugriff auf Ihre Website verwenden können. Als dieses Konto erstellt wurde, wurde "contosouniversity.com" als vorhandener Domänenname eingegeben. Daher lautet http://contosouniversity.com.vserver01.cytanium.comdie temporäre URL .

    Welcome_Email_Temporary_URL

  • Informationen zum Einrichten von Datenbanken und zu den Verbindungszeichenfolgen, die Sie für den Zugriff benötigen:

    Welcome_Email_Database_Info

  • Informationen zu Tools und Einstellungen für die Bereitstellung Ihrer Website. (Die E-Mail von Cytanium erwähnt auch WebMatrix, die hier weggelassen wird.)

    Welcome_Email_Deploy_info

Festlegen der .NET Framework Version

Die Cytanium-Willkommens-E-Mail enthält einen Link zu Anweisungen zum Ändern der Version des .NET Framework. In diesen Anweisungen wird erläutert, dass dies über das Cytanium-Bedienfeld erfolgen kann. Andere Anbieter verfügen über unterschiedliche Systemsteuerungswebsites, oder sie weisen Sie möglicherweise an, dies auf andere Weise zu tun.

Navigieren Sie zur Systemsteuerungs-URL. Nachdem Sie sich mit Ihrem Benutzernamen und Kennwort angemeldet haben, wird die Systemsteuerung angezeigt.

Cytanium_Control_Panel

Halten Sie im Feld Hostingplätze den Zeiger auf das Symbol Web, und wählen Sie im Menü Websites aus.

Cytanium_Control_Panel_selecting_Web_Sites

Klicken Sie im Feld Websites auf contosouniversity.com (den Namen der Website, die Sie beim Erstellen des Kontos verwendet haben).

Cytanium_Control_Panel_selecting_contosouniversity

Wählen Sie im Feld Websiteeigenschaften die Registerkarte Erweiterungen aus.

Cytanium_Control_Panel_Extensions_tab

Ändern Sie ASP.NET von 2.0 Integrated Pipeline in 4.0 (Integrierte Pipeline), und klicken Sie dann auf Aktualisieren.

Veröffentlichen beim Hostinganbieter

Die Willkommens-E-Mail vom Hostinganbieter enthält alle Einstellungen, die Sie zum Veröffentlichen des Projekts benötigen, und Sie können diese Informationen manuell in ein Veröffentlichungsprofil eingeben. Sie verwenden jedoch eine einfachere und weniger fehleranfällige Methode, um die Bereitstellung für den Anbieter zu konfigurieren: Sie laden eine PUBLISHSETTINGS-Datei herunter und importieren sie in ein Veröffentlichungsprofil.

Navigieren Sie in Ihrem Browser zur Cytanium-Systemsteuerung, wählen Sie Web und dann Websites aus .

Systemsteuerung Auswählen von Websites

Wählen Sie die contosouniversity.com Website aus.

Systemsteuerung Auswählen von contosouniversity.com

Wählen Sie die Registerkarte Web Publishing aus.

Registerkarte

Erstellen Sie Anmeldeinformationen für die Webveröffentlichung, indem Sie einen Benutzernamen und ein Kennwort eingeben. Sie können dieselben Anmeldeinformationen eingeben, die Sie für die Anmeldung bei der Systemsteuerung verwenden. Klicken Sie dann auf Enable (Aktivieren).

Systemsteuerung Erstellen von Anmeldeinformationen für die Veröffentlichung

Klicken Sie für diese Website auf Veröffentlichungsprofil herunterladen.

Systemsteuerung herunterladen des Veröffentlichungsprofils

Wenn Sie aufgefordert werden, die Datei zu öffnen oder zu speichern, speichern Sie sie.

Speichern der Veröffentlichungsprofildatei

Klicken Sie in Projektmappen-Explorer in Visual Studio mit der rechten Maustaste auf das Projekt ContosoUniversity, und wählen Sie Veröffentlichen aus. Das Dialogfeld Web veröffentlichen wird auf der Registerkarte Vorschau geöffnet, wobei das Testprofil ausgewählt ist, da es sich um das zuletzt verwendete Profil handelt.

Wählen Sie die Registerkarte Profil aus, und klicken Sie dann auf Importieren.

Schaltfläche

Wählen Sie im Dialogfeld Veröffentlichungseinstellungen importieren die heruntergeladene PUBLISHSETTINGS-Datei aus, und klicken Sie auf Öffnen. Der Assistent wechselt zur Registerkarte Verbindung, auf der alle Felder ausgefüllt sind.

Registerkarte

Die DATEI ".publishsettings" fügt die geplante permanente URL für die Website in das Feld Ziel-URL ein. Wenn Sie diese Domäne jedoch noch nicht erworben haben, ersetzen Sie den Wert durch die temporäre URL. In diesem Beispiel lautet http://contosouniversity.com.vserver01.cytanium.com die URL Der einzige Zweck dieses Felds besteht darin, anzugeben, für welche URL der Browser nach erfolgreicher Bereitstellung automatisch geöffnet wird. Wenn Sie es leer lassen, ist die einzige Folge, dass der Browser nach der Bereitstellung nicht automatisch gestartet wird.

Klicken Sie auf Verbindung überprüfen , um zu überprüfen, ob die Einstellungen korrekt sind und Sie eine Verbindung mit dem Server herstellen können. Wie Sie zuvor gesehen haben, wird durch ein grünes Häkchen überprüft, ob die Verbindung erfolgreich war.

Wenn Sie auf Verbindung überprüfen klicken, wird möglicherweise das Dialogfeld Zertifikatfehler angezeigt. Wenn Sie dies tun, vergewissern Sie sich, dass der Servername ihren Erwartungen entspricht. Wenn dies der Fall ist, wählen Sie Dieses Zertifikat für zukünftige Sitzungen von Visual Studio speichern aus, und klicken Sie auf Akzeptieren. (Dieser Fehler bedeutet, dass der Hostinganbieter die Kosten für den Kauf eines SSL-Zertifikats für die URL vermeiden möchte, in der Sie die Bereitstellung durchführen. Wenn Sie eine sichere Verbindung mit einem gültigen Zertifikat herstellen möchten, wenden Sie sich an Ihren Hostinganbieter.)

Zertifikatfehler

Klicken Sie auf Weiter.

Geben Sie im Abschnitt Datenbanken der Registerkarte Einstellungen die gleichen Werte ein, die Sie für das Testveröffentlichungsprofil eingegeben haben. Die benötigten Verbindungszeichenfolgen finden Sie in den Dropdownlisten.

  • Wählen Sie im Feld Verbindungszeichenfolge für SchoolContext die Option Data Source=|DataDirectory|School-Prod.sdf
  • Wählen Sie unter SchoolContext die Option Code First-Migrationen anwenden aus.
  • Wählen Sie im Feld Verbindungszeichenfolge für DefaultConnection die Option Data Source=|DataDirectory|aspnet-Prod.sdf
  • Lassen Sie unter DefaultConnectionupdate database (Datenbank aktualisieren) deaktiviert.

Registerkarte

Klicken Sie auf Weiter.

Klicken Sie auf der Registerkarte Vorschau auf Vorschau starten , um eine Liste der Dateien anzuzeigen, die kopiert werden. Sie sehen dieselbe Liste, die Sie zuvor bei der Bereitstellung in IIS auf dem lokalen Computer gesehen haben.

Ändern Sie vor der Veröffentlichung den Namen des Profils, damit Ihre Web.Production.config Transformationsdatei angewendet wird. Wählen Sie die Registerkarte Profil aus, und klicken Sie auf Profile verwalten.

Webveröffentlichungs-Assistent Zum Verwalten von Profilen

Wählen Sie im Dialogfeld Webveröffentlichungsprofile bearbeiten das Produktionsprofil aus, klicken Sie auf Umbenennen, und ändern Sie den Profilnamen in Produktion. Klicken Sie anschließend auf Schließen.

Dialogfeld

Klicken Sie auf Veröffentlichen.

Die Anwendung wird beim Hostinganbieter veröffentlicht. Das Ergebnis wird im Fenster Ausgabe angezeigt.

Ausgabefenster nach der Bereitstellung

Der Browser öffnet automatisch die URL, die Sie im Assistenten zum Veröffentlichen von Web veröffentlichen auf der Registerkarte Verbindung im Feld Ziel-URL eingegeben haben. Sie sehen dieselbe Startseite wie beim Ausführen der Website in Visual Studio, mit der Ausnahme, dass in der Titelleiste kein Umgebungsindikator "(Test)" oder "(Dev)" vorhanden ist. Dies gibt an, dass der Umgebungsindikator Web.config Transformation ordnungsgemäß funktioniert hat.

Hinweis

Wenn in der Überschrift weiterhin "(Test)" angezeigt wird, löschen Sie den Ordner obj aus dem ContosoUniversity-Projekt, und stellen Sie erneut bereit. In Vorabversionen der Software wird die zuvor angewendete Transformationsdatei (Web.Test.config) möglicherweise erneut angewendet, obwohl Sie das Produktionsprofil verwenden.

Home_page_Prod

Bevor Sie eine Seite ausführen, die den Datenbankzugriff verursacht, stellen Sie sicher, dass Elmah alle auftretenden Fehler protokollieren kann.

Festlegen von Ordnerberechtigungen für Elmah

Wie Sie sich aus dem vorherigen Tutorial dieser Reihe erinnern, müssen Sie sicherstellen, dass die Anwendung über Schreibberechtigungen für den Ordner in Ihrer Anwendung verfügt, in dem Elmah Fehlerprotokolldateien speichert. Wenn Sie in IIS lokal auf Ihrem Computer bereitgestellt haben, legen Sie diese Berechtigungen manuell fest. In diesem Abschnitt erfahren Sie, wie Sie Berechtigungen für Cytanium festlegen. (Einige Hostinganbieter ermöglichen dies möglicherweise nicht; sie bieten möglicherweise einen oder mehrere vordefinierte Ordner mit Schreibberechtigungen an. In diesem Fall müssten Sie Ihre Anwendung so ändern, dass sie die angegebenen Ordner verwendet.)

Sie können Ordnerberechtigungen in der Cytanium-Systemsteuerung festlegen. Wechseln Sie zur Systemsteuerungs-URL, und wählen Sie Datei-Manager aus.

Cytanium_Control_Panel_with_File_Manager_selected

Wählen Sie im Feld Datei-Managercontosouniversity.com und dann wwwroot aus, um den Stammordner der Anwendung anzuzeigen. Klicken Sie auf das Schlosssymbol neben Elmah.

Cytanium_Control_Panel_File_Manager_at_root_folder

Aktivieren Sie im FensterDateiordnerberechtigungen/ die Kontrollkästchen Lesen und Schreiben für contosouniversity.com, und klicken Sie auf Berechtigungen festlegen.

Cytanium_Control_Panel_File_Folder_Permissions_Elmah

Stellen Sie sicher, dass Elmah über Schreibzugriff auf den Elmah-Ordner verfügt, indem Sie einen Fehler verursachen und dann den Elmah-Fehlerbericht anzeigen. Fordern Sie eine ungültige URL wie Studentsxxx.aspx an. Wie zuvor wird die Seite GenericErrorPage.aspx angezeigt. Klicken Sie auf den Link Abmelden , und führen Sie dann Elmah.axd aus. Sie erhalten zuerst die Anmeldeseite, auf der überprüft wird, ob die Web.config Transformation die Elmah-Autorisierung erfolgreich hinzugefügt hat. Nachdem Sie sich angemeldet haben, wird der Bericht angezeigt, in dem der soeben verursachte Fehler angezeigt wird.

Elmah.axd_Prod

Testen in der Produktionsumgebung

Führen Sie die Seite Schüler aus . Die Anwendung versucht zum ersten Mal, auf die School-Datenbank zuzugreifen, wodurch Code First-Migrationen ausgelöst wird, um die Datenbank zu erstellen. Wenn die Seite nach einer kurzen Verzögerung angezeigt wird, wird angezeigt, dass keine Schüler vorhanden sind.

Students_page_Prod

Führen Sie die Seite Dozenten aus, um zu überprüfen, ob die Seeddaten die Kursleiterdaten erfolgreich in die Datenbank eingefügt haben.

Instructors_page_Prod

Wie in der Testumgebung möchten Sie überprüfen, ob Datenbankupdates in der Produktionsumgebung funktionieren, aber sie möchten in der Regel keine Testdaten in Ihre Produktionsdatenbank eingeben. In diesem Tutorial verwenden Sie die gleiche Methode wie im Test. In einer echten Anwendung möchten Sie jedoch möglicherweise eine Methode finden, die überprüft, ob Datenbankupdates erfolgreich sind, ohne Testdaten in die Produktionsdatenbank einzufügen. In einigen Anwendungen kann es sinnvoll sein, etwas hinzuzufügen und dann zu löschen.

Fügen Sie einen Kursteilnehmer hinzu, und zeigen Sie dann die Daten an, die Sie auf der Seite Schüler eingegeben haben, um zu überprüfen, ob Sie Daten in der Datenbank aktualisieren können.

Add_Students_page_Prod

Students_page_with_new_student_Prod

Überprüfen Sie, ob die Autorisierungsregeln ordnungsgemäß funktionieren, indem Sie im Menü Kurse die Option Guthaben aktualisieren auswählen. Die Seite Anmelden wird angezeigt. Geben Sie Ihre Administratorkontoanmeldeinformationen ein, klicken Sie auf Anmelden, und die Seite Guthaben aktualisieren wird angezeigt.

Log_In_page_Prod

Wenn die Anmeldung erfolgreich war, wird die Seite Guthaben aktualisieren angezeigt. Dies gibt an, dass die ASP.NET-Mitgliedschaftsdatenbank (mit dem einzelnen Administratorkonto) erfolgreich bereitgestellt wurde.

Update_Credits_page_Prod

Sie haben Ihre Website jetzt erfolgreich bereitgestellt und getestet, und sie ist öffentlich über das Internet verfügbar.

Erstellen einer zuverlässigeren Testumgebung

Wie im Tutorial Bereitstellen in der Testumgebung erläutert, wäre die zuverlässigste Testumgebung ein zweites Konto beim Hostinganbieter, das genau wie das Produktionskonto entspricht. Dies wäre teurer als die Verwendung lokaler IIS als Testumgebung, da Sie sich für ein zweites Hostingkonto registrieren müssten. Wenn es jedoch Fehler oder Ausfälle von Produktionsstandorten verhindert, können Sie entscheiden, dass die Kosten sich lohnt.

Der Großteil des Prozesses zum Erstellen und Bereitstellen in einem Testkonto ähnelt dem, was Sie bereits für die Bereitstellung in der Produktion getan haben:

  • Erstellen Sie eine Web.config Transformationsdatei.
  • Erstellen Sie ein Konto beim Hostinganbieter.
  • Erstellen Sie ein neues Veröffentlichungsprofil, und stellen Sie sie im Testkonto bereit.

Verhindern des öffentlichen Zugriffs auf die Testwebsite

Ein wichtiger Aspekt für das Testkonto ist, dass es im Internet live sein wird, aber Sie möchten nicht, dass die Öffentlichkeit es verwendet. Um die Website privat zu halten, können Sie eine oder mehrere der folgenden Methoden verwenden:

  • Wenden Sie sich an den Hostinganbieter, um Firewallregeln festzulegen, die den Zugriff auf die Testwebsite nur über IP-Adressen zulassen, die Sie zum Testen verwenden.
  • Verschleiern Sie die URL, sodass sie nicht der URL der öffentlichen Website ähnelt.
  • Verwenden Sie eine robots.txt-Datei , um sicherzustellen, dass Suchmaschinen die Testwebsite nicht durchforsten und Links dazu in Suchergebnissen melden.

Die erste dieser Methoden ist natürlich die sicherste, aber das Verfahren dafür ist für jeden Hostinganbieter spezifisch und wird in diesem Tutorial nicht behandelt. Wenn Sie mit Ihrem Hostinganbieter vereinbaren, dass nur Ihre IP-Adresse zur Testkonto-URL navigieren kann, müssen Sie sich theoretisch keine Gedanken darüber machen, dass Suchmaschinen sie durchforsten. Aber auch in diesem Fall ist die Bereitstellung einer robots.txt-Datei eine gute Idee als Sicherung für den Fall, dass die Firewallregel versehentlich deaktiviert wird.

Die robots.txt-Datei befindet sich in Ihrem Projektordner und sollte den folgenden Text enthalten:

User-agent: *
Disallow: /

Die User-agent Zeile teilt Suchmaschinen mit, dass die Regeln in der Datei für alle Suchmaschinen-Webcrawler (Roboter) gelten, und die Disallow Zeile gibt an, dass keine Seiten auf der Website durchforstet werden sollen.

Sie möchten wahrscheinlich, dass Suchmaschinen Ihre Produktionswebsite katalogisieren, sodass Sie diese Datei aus der Produktionsbereitstellung ausschließen müssen. Informationen hierzu finden Sie unter Kann ich bestimmte Dateien oder Ordner von der Bereitstellung ausschließen? in ASP.NET Häufig gestellte Fragen zur Bereitstellung von Webanwendungsprojekten. Stellen Sie sicher, dass Sie den Ausschluss nur für das Produktionsveröffentlichungsprofil angeben.

Das Erstellen eines zweiten Hostingkontos ist ein Ansatz für die Arbeit mit einer Testumgebung, die nicht erforderlich ist, aber den zusätzlichen Aufwand lohnen kann. In den folgenden Tutorials verwenden Sie weiterhin IIS als Testumgebung.

Im nächsten Tutorial aktualisieren Sie den Anwendungscode und stellen Ihre Änderung in den Test- und Produktionsumgebungen bereit.