Freigeben über


ASP.NET Webbereitstellung mit Visual Studio: Bereitstellen in der Produktion

von Tom Dykstra

Starter-Projekt herunterladen

In dieser Tutorialreihe erfahren Sie, wie Sie mithilfe von Visual Studio 2012 oder Visual Studio 2010 eine ASP.NET Webanwendung für Azure App Service Web-Apps oder für einen Hostinganbieter eines Drittanbieters bereitstellen (veröffentlichen). Informationen zur Reihe finden Sie im ersten Tutorial der Reihe.

Überblick

In diesem Tutorial richten Sie ein Microsoft Azure-Konto ein, erstellen Staging- und Produktionsumgebungen und stellen Ihre ASP.NET Webanwendung in den Staging- und Produktionsumgebungen bereit, indem Sie das Visual Studio-Feature mit einem Klick veröffentlichen.

Wenn Sie möchten, können Sie die Bereitstellung bei einem Hostinganbieter eines Drittanbieters durchführen. Die meisten in diesem Tutorial beschriebenen Verfahren sind für einen Hostinganbieter oder für Azure identisch, mit der Ausnahme, dass jeder Anbieter über eine eigene Benutzeroberfläche für die Konto- und Websiteverwaltung verfügt. Sie finden einen Hostinganbieter im Katalog der Anbieter auf der Microsoft.com Website.

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

Abrufen eines Microsoft Azure-Kontos

Wenn Sie noch nicht über ein Azure-Konto verfügen, können Sie in wenigen Minuten ein kostenloses Testkonto erstellen. Ausführliche Informationen finden Sie unter Einen Monat kostenlos testen.

Erstellen einer Stagingumgebung

Hinweis

Da dieses Tutorial geschrieben wurde, Azure App Service ein neues Feature hinzugefügt, um viele Prozesse zum Erstellen von Staging- und Produktionsumgebungen zu automatisieren. Weitere Informationen finden Sie unter Einrichten von Stagingumgebungen für Web-Apps in Azure App Service.

Wie im Tutorial Bereitstellen in der Testumgebung erläutert, ist die zuverlässigste Testumgebung eine Website beim Hostinganbieter, die genauso wie die Produktionswebsite ist. Bei vielen Hostinganbietern müssen Sie die Vorteile ders gegen erhebliche zusätzliche Kosten abwägen, aber in Azure können Sie eine zusätzliche kostenlose Web-App als Staging-App erstellen. Sie benötigen auch eine Datenbank, und der zusätzliche Aufwand für diese gegenüber den Ausgaben Ihrer Produktionsdatenbank ist entweder nicht oder minimal. In Azure zahlen Sie für die Menge des von Ihnen verwendeten Datenbankspeichers und nicht für jede Datenbank, und die Menge des zusätzlichen Speichers, den Sie im Staging verwenden, ist minimal.

Wie im Tutorial Bereitstellen in der Testumgebung erläutert, stellen Sie in Staging und Produktion Ihre beiden Datenbanken in einer Datenbank bereit. Wenn Sie sie getrennt halten möchten, ist der Prozess identisch, mit der Ausnahme, dass Sie eine zusätzliche Datenbank für jede Umgebung erstellen und beim Erstellen des Veröffentlichungsprofils die richtige Zielzeichenfolge für jede Datenbank auswählen würden.

In diesem Abschnitt des Tutorials erstellen Sie eine Web-App und Datenbank, die für die Stagingumgebung verwendet werden soll, und Sie stellen die Bereitstellung für das Staging und testen dort vor dem Erstellen und Bereitstellen in der Produktionsumgebung bereit.

Hinweis

Die folgenden Schritte zeigen, wie Sie mithilfe des Azure-Verwaltungsportals eine Web-App in Azure App Service erstellen. In der neuesten Version des Azure SDK können Sie dies auch tun, ohne Visual Studio zu verlassen, indem Sie Server Explorer verwenden. In Visual Studio 2013 können Sie eine Web-App auch direkt über das Dialogfeld Veröffentlichen erstellen. Weitere Informationen finden Sie unter Erstellen einer ASP.NET Web-App in Azure App Service.

  1. Klicken Sie im Azure-Verwaltungsportal auf Websites und dann auf Neu.

  2. Klicken Sie auf Website und dann auf Benutzerdefinierte Erstellung.

    Der Assistent Neue Website – Benutzerdefiniertes Erstellen wird geöffnet. Mit dem Assistenten zum benutzerdefinierten Erstellen können Sie eine Website und eine Datenbank gleichzeitig erstellen.

  3. Geben Sie im Schritt Website erstellen des Assistenten eine Zeichenfolge in das Feld URL ein, die als eindeutige URL für die Stagingumgebung Ihrer Anwendung verwendet werden soll. Geben Sie beispielsweise ContosoUniversity-staging123 ein (einschließlich Zufallszahlen am Ende, um es eindeutig zu machen, falls ContosoUniversity-staging verwendet wird).

    Die vollständige URL besteht aus der hier eingegebenen Zeichenfolge und dem Suffix, das neben dem Textfeld aufgeführt wird.

  4. Wählen Sie in der Dropdownliste Region die Region aus, die Ihnen am nächsten liegt.

    Diese Einstellung gibt an, in welchem Rechenzentrum Ihre Web-App ausgeführt wird.

  5. Wählen Sie in der Dropdownliste Datenbank die Option Neue SQL-Datenbank erstellen aus.

  6. Behalten Sie im Feld Name der Db-Verbindungszeichenfolge den Standardwert DefaultConnection bei.

  7. Klicken Sie unten im Feld auf den Pfeil, der nach rechts zeigt.

    Die folgende Abbildung zeigt das Dialogfeld Website erstellen mit Beispielwerten. Die von Ihnen eingegebene URL und Region unterscheiden sich.

    Schritt

    Der Assistent springt zum Schritt Specify database settings .

  8. Geben Sie im Feld Nameden Namen ContosoUniversity plus eine zufällige Zahl ein, um es eindeutig zu machen, z. B. ContosoUniversity123.

  9. Wählen Sie im Feld Serverdie Option Neuer SQL-Datenbank Server aus.

  10. Geben Sie einen Administratornamen und ein Kennwort ein.

    Sie geben hier keinen vorhandenen Namen und kein Kennwort ein. Sie geben einen neuen Namen und das dazugehörige Kennwort ein. Diese Angaben werden hier zur späteren Verwendung für den Zugriff auf die Datenbank definiert.

  11. Wählen Sie im Feld Region dieselbe Region aus, die Sie für die Web-App ausgewählt haben.

    Wenn Sie den Webserver und den Datenbankserver in derselben Region beibehalten, erhalten Sie die beste Leistung und minimieren die Kosten.

  12. Klicken Sie unten im Kontrollkästchen auf das Kontrollkästchen, um anzugeben, dass Sie fertig sind.

    Die folgende Abbildung zeigt das Dialogfeld Datenbankeinstellungen angeben mit Beispielwerten. Die von Ihnen eingegebenen Werte können unterschiedlich sein.

    Schritt

    Das Verwaltungsportal kehrt zur Seite Websites zurück, und die Spalte Status zeigt an, dass die Web-App erstellt wird. Nach einer Weile (in der Regel weniger als eine Minute) zeigt die Spalte Status an, dass die Web-App erfolgreich erstellt wurde. In der Navigationsleiste auf der linken Seite wird die Anzahl der Web-Apps in Ihrem Konto neben dem Symbol Websites angezeigt, und die Anzahl der Datenbanken wird neben dem Symbol SQL-Datenbanken angezeigt.

    Websiteseite des Verwaltungsportals, Website erstellt

    Der Name Ihrer Web-App unterscheidet sich von der Beispiel-App in der Abbildung.

Bereitstellen der Anwendung im Staging

Nachdem Sie nun eine Web-App und Datenbank für die Stagingumgebung erstellt haben, können Sie das Projekt darauf bereitstellen.

Hinweis

Diese Anweisungen zeigen, wie Sie ein Veröffentlichungsprofil erstellen, indem Sie eine PUBLISHSETTINGS-Datei herunterladen, die nicht nur für Azure, sondern auch für Hostinganbieter von Drittanbietern funktioniert. Mit dem neuesten Azure SDK können Sie auch eine direkte Verbindung mit Azure über Visual Studio herstellen und aus einer Liste von Web-Apps auswählen, die Sie in Ihrem Azure-Konto haben. In Visual Studio 2013 können Sie sich über das Dialogfeld Webveröffentlichung oder über das Fenster Server Explorer bei Azure anmelden. Weitere Informationen finden Sie unter Erstellen einer ASP.NET Web-App in Azure App Service.

Herunterladen der Datei ".publishsettings"

  1. Klicken Sie auf den Namen der soeben erstellten Web-App.

    Klicken Sie auf die Website, um zum Dashboard zu wechseln.

  2. Klicken Sie unter Schnellblick auf der Registerkarte Dashboard auf Veröffentlichungsprofil herunterladen.

    Link zum Herunterladen des Veröffentlichungsprofils

    In diesem Schritt wird eine Datei heruntergeladen, die alle Einstellungen enthält, die Sie zum Bereitstellen einer Anwendung in Ihrer Web-App benötigen. Sie importieren diese Datei in Visual Studio, sodass Sie diese Informationen nicht manuell eingeben müssen.

  3. Speichern Sie die PUBLISHSETTINGS-Datei in einem Ordner, auf den Sie von Visual Studio aus zugreifen können.

    Speichern der DATEI

    Warnung

    Sicherheit: Die Datei ".publishsettings" enthält Ihre Anmeldeinformationen (nicht codiert), die zum Verwalten Ihrer Azure-Abonnements und -Dienste verwendet werden. Die bewährte Sicherheitsmethode für diese Datei besteht im vorübergehenden Speichern außerhalb Ihrer Quellcodeverzeichnisse (beispielsweise im Ordner "Libraries\Documents"). Löschen Sie sie nach Abschluss des Importvorgangs. Ein böswilliger Benutzer, der Zugriff auf die PUBLISHSETTINGS-Datei erhält, kann Ihre Azure-Dienste bearbeiten, erstellen und löschen.

Erstellen eines Veröffentlichungsprofils

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf das Projekt ContosoUniversity in Projektmappen-Explorer, und wählen Sie im Kontextmenü Veröffentlichen aus.

    Der Assistent Web veröffentlichen wird geöffnet.

  2. Klicken Sie auf die Registerkarte Profil .

  3. Klicken Sie auf Importieren.

  4. Navigieren Sie zu der zuvor heruntergeladenen DATEI ".publishsettings" , und klicken Sie dann auf Öffnen.

    Dialogfeld

  5. Klicken Sie auf der Registerkarte Verbindung auf Verbindung überprüfen , um sicherzustellen, dass die Einstellungen richtig sind.

    Wenn die Verbindung überprüft wurde, wird neben der Schaltfläche Verbindung überprüfen ein grünes Häkchen angezeigt.

    Wenn Sie bei einigen Hostinganbietern auf Verbindung überprüfen klicken, wird möglicherweise das Dialogfeld Zertifikatfehler angezeigt. Wenn Sie dies tun, vergewissern Sie sich, dass der Servername dem entspricht, was Sie erwarten. Wenn der Servername richtig ist, wählen Sie Dieses Zertifikat für zukünftige Visual Studio-Sitzungen speichern aus, und klicken Sie auf Akzeptieren. (Dieser Fehler bedeutet, dass der Hostinganbieter entschieden hat, die Kosten für den Erwerb eines SSL-Zertifikats für die URL zu vermeiden, in der Sie die Bereitstellung durchführen. Wenn Sie es vorziehen, eine sichere Verbindung mithilfe eines gültigen Zertifikats herzustellen, wenden Sie sich an Ihren Hostinganbieter.)

  6. Klicken Sie auf Weiter.

    Symbol

  7. Erweitern Sie auf der Registerkarte Einstellungen dateiveröffentlichungsoptionen, und wählen Sie dann Dateien aus dem ordner App_Data ausschließen aus.

    Informationen zu den anderen Optionen unter Dateiveröffentlichungsoptionen finden Sie im Tutorial zum Bereitstellen in IIS . Der Screenshot, der das Ergebnis dieses Schritts und die folgenden Datenbankkonfigurationsschritte zeigt, befindet sich am Ende der Datenbankkonfigurationsschritte.

  8. Konfigurieren Sie unter DefaultConnection im Abschnitt Datenbanken die Datenbankbereitstellung für die Mitgliedschaftsdatenbank.

    1. Wählen Sie Datenbank aktualisieren aus.

      Das Feld Remoteverbindungszeichenfolge direkt unter DefaultConnection wird mit der Verbindungszeichenfolge aus der Datei ".publishsettings" ausgefüllt. Die Verbindungszeichenfolge enthält SQL Server Anmeldeinformationen, die als Nur-Text in der PUBXML-Datei gespeichert werden. Wenn Sie sie nicht dauerhaft dort speichern möchten, können Sie sie nach der Bereitstellung der Datenbank aus dem Veröffentlichungsprofil entfernen und stattdessen in Azure speichern. Weitere Informationen finden Sie im Blog von Scott Hanselman unter How to keep Your ASP.NET database connection strings when deploying to Azure from Source . 2. Klicken Sie auf Datenbankupdates konfigurieren. 3. Klicken Sie im Dialogfeld Datenbank Updates konfigurieren auf SQL-Skript hinzufügen. 4. Navigieren Sie im Feld SQL-Skript hinzufügen zu dem Skript aspnet-data-prod.sql , das Sie zuvor im Projektmappenordner gespeichert haben, und klicken Sie dann auf Öffnen. 5. Schließen Sie das Dialogfeld Datenbank konfigurieren Updates.

  9. Wählen Sie unter SchoolContext im Abschnitt Datenbankendie Option Code First-Migrationen ausführen (wird beim Anwendungsstart ausgeführt).

    Visual Studio zeigt ausführen Code First-Migrationen anstelle von Datenbank aktualisieren für DbContext Klassen an. Wenn Sie den DbDacFx-Anbieter anstelle von Migrationen verwenden möchten, um eine Datenbank bereitzustellen, auf die Sie mithilfe einer DbContext -Klasse zugreifen, finden Sie weitere Informationen unter Gewusst wie Bereitstellen einer Code First-Datenbank ohne Migrationen? in den häufig gestellten Fragen zur Webbereitstellung für Visual Studio und ASP.NET auf MSDN.

    Die Registerkarte Einstellungen sieht nun wie im folgenden Beispiel aus:

    Registerkarte

  10. Führen Sie die folgenden Schritte aus, um das Profil zu speichern und in Staging umzubenennen:

    1. Klicken Sie auf die Registerkarte Profil , und klicken Sie dann auf Profile verwalten.

    2. Beim Import wurden zwei neue Profile erstellt, eines für FTP und eines für Web Deploy. Sie haben das Webbereitstellungsprofil konfiguriert: Benennen Sie dieses Profil in Staging um.

      Umbenennen des Profils in Staging

    3. Schließen Sie das Dialogfeld Webveröffentlichungsprofile bearbeiten .

    4. Schließen Sie den Assistenten zum Veröffentlichen von Weben .

Konfigurieren einer Veröffentlichungsprofiltransformation für den Umgebungsindikator

Hinweis

In diesem Abschnitt wird gezeigt, wie Sie eine Web.config Transformation für den Umgebungsindikator einrichten. Da sich der Indikator im <appSettings> Element befindet, haben Sie eine andere Alternative zum Angeben der Transformation, wenn Sie die Bereitstellung in Azure App Service durchführen. Weitere Informationen finden Sie unter Angeben Web.config Einstellungen in Azure.

  1. Erweitern Sie in Projektmappen-ExplorerEigenschaften und dann PublishProfiles.

  2. Klicken Sie mit der rechten Maustaste auf Staging.pubxml, und klicken Sie dann auf Konfigurationstransformation hinzufügen.

    Hinzufügen der Konfigurationstransformation für das Staging

    Visual Studio erstellt die Web.Staging.config Transformationsdatei und öffnet sie.

  3. Fügen Sie in der Web.Staging.config Transformationsdatei den folgenden Code unmittelbar nach dem öffnenden configuration Tag ein.

    <appSettings>
        <add key="Environment" value="Prod" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    Wenn Sie das Staging-Veröffentlichungsprofil verwenden, legt diese Transformation den Umgebungsindikator auf "Prod" fest. In der bereitgestellten Web-App wird nach der Überschrift "Contoso University" H1 kein Suffix wie "(Dev)" oder "(Test)" angezeigt.

  4. Klicken Sie mit der rechten Maustaste auf die dateiWeb.Staging.config , und klicken Sie auf Transformation vorschau , um sicherzustellen, dass die von Ihnen codierte Transformation die erwarteten Änderungen erzeugt.

    Das Web.config Vorschaufenster zeigt das Ergebnis des Anwendens der Web.Release.config Transformationen und der Web.Staging.config Transformationen an.

Verhindern der öffentlichen Verwendung der Test-App

Eine wichtige Überlegung für die Staging-App ist, dass sie im Internet live sein wird, sie jedoch nicht von der Öffentlichkeit verwendet werden soll. Um die Wahrscheinlichkeit zu minimieren, dass Personen es finden und verwenden, können Sie eine oder mehrere der folgenden Methoden verwenden:

  • Legen Sie Firewallregeln fest, die den Zugriff auf die Staging-App nur über IP-Adressen zulassen, die Sie zum Testen des Stagings verwenden.
  • Verwenden Sie eine verschleierte URL, die nicht erraten werden kann.
  • Erstellen Sie eine robots.txt-Datei , um sicherzustellen, dass Suchmaschinen die Test-App nicht durchforsten und in Suchergebnissen Links darauf melden.

Die erste dieser Methoden ist die effektivste, wird aber in diesem Tutorial nicht behandelt, da sie eine Bereitstellung in einem Azure Cloud Service anstelle von Azure App Service erfordern würde. Weitere Informationen zu Cloud Services- und IP-Einschränkungen in Azure finden Sie unter Von Azure bereitgestellte Computehostingoptionen und Blockieren des Zugriffs auf eine Webrolle durch bestimmte IP-Adressen. Wenn Sie die Bereitstellung für einen Drittanbieter durchführen, wenden Sie sich an den Anbieter, um zu erfahren, wie IP-Einschränkungen implementiert werden.

In diesem Tutorial erstellen Sie eine robots.txt-Datei .

  1. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ContosoUniversity, und klicken Sie dann auf Neues Element hinzufügen.

  2. Erstellen Sie eine neue Textdatei mit dem Namen robots.txt, und fügen Sie den folgenden Text ein:

    User-agent: *
    Disallow: /
    

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

    Sie möchten, dass Suchmaschinen Ihre Produktions-App katalogisieren, daher müssen Sie diese Datei aus der Produktionsbereitstellung ausschließen. Dazu konfigurieren Sie eine Einstellung im Produktionsveröffentlichungsprofil, wenn Sie es erstellen.

Bereitstellen in der Stagingumgebung

  1. Öffnen Sie den Assistenten zum Veröffentlichen von Web , indem Sie mit der rechten Maustaste auf das Projekt Contoso University klicken und dann auf Veröffentlichen klicken.

  2. Stellen Sie sicher, dass das Stagingprofil ausgewählt ist.

  3. Klicken Sie auf Veröffentlichen.

    Im Fenster Ausgabe wird angezeigt, welche Bereitstellungsaktionen ausgeführt wurden, und es wird die erfolgreiche Durchführung der Bereitstellung gemeldet. Der Standardbrowser wird automatisch für die URL der bereitgestellten Web-App geöffnet.

Testen in der Stagingumgebung

Beachten Sie, dass der Umgebungsindikator nicht vorhanden ist (es gibt keine "(Test)" oder "(Dev)" nach der H1-Überschrift, was zeigt, dass die Web.config Transformation für den Umgebungsindikator erfolgreich war.

Startseiten-Staging

Führen Sie die Seite Schüler aus, um zu überprüfen, ob die bereitgestellte Datenbank keine Kursteilnehmer enthält.

Führen Sie die Seite Instructors aus, um zu überprüfen, ob Code First die Datenbank mit Kursleiterdaten ausser betrieb:

Wählen Sie im Menü Studenten die Option Kursteilnehmer hinzufügen aus, fügen Sie einen Kursteilnehmer hinzu, und zeigen Sie dann den neuen Kursteilnehmer auf der Seite Studenten an, um zu überprüfen, ob Sie erfolgreich in die Datenbank schreiben können.

Klicken Sie auf der Seite Kurse auf Guthaben aktualisieren. Die Seite Guthaben aktualisieren erfordert Administratorberechtigungen, sodass die Anmeldeseite angezeigt wird. Geben Sie die Anmeldeinformationen des Administratorkontos ein, die Sie zuvor erstellt haben ("admin" und "prodpwd"). Die Seite Guthaben aktualisieren wird angezeigt, die überprüft, ob das Administratorkonto, das Sie im vorherigen Tutorial erstellt haben, ordnungsgemäß in der Testumgebung bereitgestellt wurde.

Fordern Sie eine ungültige URL an, um einen Fehler zu verursachen, den ELMAH nachverfolgt, und fordern Sie dann den ELMAH-Fehlerbericht an. Wenn Sie die Bereitstellung bei einem Drittanbieterhostanbieter durchführen, werden Sie wahrscheinlich feststellen, dass der Bericht aus demselben Grund leer ist, wie er im vorherigen Tutorial leer war. Sie müssen die Kontoverwaltungstools des Hostinganbieters verwenden, um Ordnerberechtigungen zu konfigurieren, damit ELMAH in den Protokollordner schreiben kann.

Die von Ihnen erstellte Anwendung wird jetzt in der Cloud in einer Web-App ausgeführt, die genau dem entspricht, was Sie für die Produktion verwenden. Da alles ordnungsgemäß funktioniert, besteht der nächste Schritt in der Bereitstellung in der Produktion.

Bereitstellen für die Produktion

Der Prozess zum Erstellen einer Produktions-Web-App und zur Bereitstellung in der Produktion ist der gleiche wie beim Staging, mit dem Unterschied, dass Sie die robots.txt von der Bereitstellung ausschließen müssen. Dazu bearbeiten Sie die Veröffentlichungsprofildatei.

Erstellen der Produktionsumgebung und des Produktionsveröffentlichungsprofils

  1. Erstellen Sie die Produktions-Web-App und -Datenbank in Azure nach demselben Verfahren, das Sie für das Staging verwendet haben.

    Wenn Sie die Datenbank erstellen, können Sie sie auf demselben Server ablegen, den Sie zuvor erstellt haben, oder einen neuen Server erstellen.

  2. Laden Sie die Datei ".publishsettings" herunter.

  3. Erstellen Sie das Veröffentlichungsprofil, indem Sie die Produktionsdatei ".publishsettings" importieren, und folgen Sie demselben Verfahren, das Sie für das Staging verwendet haben.

    Vergessen Sie nicht, das Datenbereitstellungsskript unter DefaultConnection im Abschnitt Datenbanken der Registerkarte Einstellungen zu konfigurieren.

  4. Benennen Sie das Veröffentlichungsprofil in Production um.

  5. Konfigurieren Sie eine Transformation des Veröffentlichungsprofils für den Umgebungsindikator, und folgen Sie demselben Verfahren, das Sie auch für staging verwendet haben.

Bearbeiten Sie die PUBXML-Datei, um robots.txt auszuschließen.

Veröffentlichungsprofildateien haben den Namen <profilename.pubxml> und befinden sich im Ordner PublishProfiles. Der Ordner PublishProfiles befindet sich unter dem Ordner Eigenschaften in einem C#-Webanwendungsprojekt, unter dem Ordner Mein Projekt in einem VB-Webanwendungsprojekt oder unter dem Ordner App_Data in einem Web-App-Projekt. Jede PUBXML-Datei enthält Einstellungen, die für ein Veröffentlichungsprofil gelten. Die Werte, die Sie im Assistenten zum Veröffentlichen von Web eingeben, werden in diesen Dateien gespeichert, und Sie können sie bearbeiten, um Einstellungen zu erstellen oder zu ändern, die auf der Visual Studio-Benutzeroberfläche nicht verfügbar gemacht werden.

Standardmäßig sind PUBXML-Dateien im Projekt enthalten, wenn Sie ein Veröffentlichungsprofil erstellen. Sie können sie jedoch aus dem Projekt ausschließen, und Visual Studio verwendet sie weiterhin. Visual Studio sucht im Ordner PublishProfiles nach PUBXML-Dateien , unabhängig davon, ob sie im Projekt enthalten sind.

Für jede PUBXML-Datei gibt es eine .pubxml.user-Datei . Die Datei .pubxml.user enthält das verschlüsselte Kennwort, wenn Sie die Option Kennwort speichern ausgewählt haben, und ist standardmäßig aus dem Projekt ausgeschlossen.

Eine PUBXML-Datei enthält die Einstellungen, die sich auf ein bestimmtes Veröffentlichungsprofil beziehen. Wenn Sie Einstellungen konfigurieren möchten, die für alle Profile gelten, können Sie eine WPP.targets-Datei erstellen. Der Buildprozess importiert diese Dateien in die CSPROJ - oder VBPROJ-Projektdatei , sodass die meisten Einstellungen, die Sie in der Projektdatei konfigurieren können, in diesen Dateien konfiguriert werden können. Weitere Informationen zu PUBXML-Dateien und WPP.targets-Dateien finden Sie unter Vorgehensweise: Bearbeiten von Bereitstellungseinstellungen in Veröffentlichungsprofildateien (.pubxml)-Dateien und der WPP.targets-Datei in Visual Studio-Webprojekten.

  1. Erweitern Sie in Projektmappen-ExplorerEigenschaften und PublishProfiles.

  2. Klicken Sie mit der rechten Maustaste auf Production.pubxml , und klicken Sie auf Öffnen.

    Öffnen Sie die PUBXML-Datei.

  3. Klicken Sie mit der rechten Maustaste auf Production.pubxml , und klicken Sie auf Öffnen.

  4. Fügen Sie die folgenden Zeilen unmittelbar vor dem schließende PropertyGroup Element hinzu:

    <ExcludeFilesFromDeployment>
        robots.txt
    </ExcludeFilesFromDeployment>
    

    Die PUBXML-Datei sieht nun wie das folgende Beispiel aus:

    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <WebPublishMethod>MSDeploy</WebPublishMethod>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish>http://contosou-staging.azurewebsites.net</SiteUrlToLaunchAfterPublish>
        <ExcludeApp_Data>True</ExcludeApp_Data>
        <MSDeployServiceURL>waws-prod-bay-001.publish.azurewebsites.windows.net:443</MSDeployServiceURL>
        <DeployIisAppPath>contosou-staging</DeployIisAppPath>
        <RemoteSitePhysicalPath />
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
        <UserName>[username]</UserName>
        <_SavePWD>True</_SavePWD>
        <PublishDatabaseSettings>
          <!-- database settings removed -->
        </PublishDatabaseSettings>
        <ExcludeFilesFromDeployment>
            robots.txt
        </ExcludeFilesFromDeployment>
      </PropertyGroup>
      <ItemGroup>
        <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String">
          <ParameterValue>Data Source=tcp:sk0264hvc9.database.windows.net,1433;Initial Catalog=ContosoUniversity-staging;User Id=CU-staging-admin@sk0264hvc9;Password=</ParameterValue>
        </MSDeployParameterValue>
        <MSDeployParameterValue Include="$(DeployParameterPrefix)SchoolContext-Web.config Connection String">
          <ParameterValue>Data Source=tcp:sk0264hvc9.database.windows.net,1433;Initial Catalog=ContosoUniversity-staging;User Id=CU-staging-admin@sk0264hvc9;Password=</ParameterValue>
        </MSDeployParameterValue>
      </ItemGroup>
    </Project>
    

    Weitere Informationen zum Ausschließen von Dateien und Ordnern finden Sie unter Kann ich bestimmte Dateien oder Ordner von der Bereitstellung ausschließen? in den häufig gestellten Fragen zur Webbereitstellung für Visual Studio und ASP.NET auf MSDN.

Bereitstellen für die Produktion

  1. Öffnen Sie den Assistenten web veröffentlichen , stellen Sie sicher, dass das Produktionsveröffentlichungsprofil ausgewählt ist, und klicken Sie dann auf der Registerkarte Vorschau starten, um zu überprüfen, ob die robots.txt-Datei nicht in die Produktions-App kopiert wird.

    Vorschau der Dateien, die in der Produktion veröffentlicht werden sollen

    Überprüfen Sie die Liste der Dateien, die kopiert werden. Sie sehen, dass alle CS-Dateien , einschließlich .aspx.cs, .aspx.designer.cs, Master.cs und Master.designer.cs , weggelassen werden. Dieser gesamte Code wurde in die DateienContosoUniversity.dll und ContosoUniversity.pdb kompiliert, die sie im Ordner bin finden. Da zum Ausführen der Anwendung nur der .dll erforderlich ist und Sie zuvor angegeben haben, dass nur Dateien bereitgestellt werden sollen, die zum Ausführen der Anwendung erforderlich sind, wurden keine CS-Dateien in die Zielumgebung kopiert. Der Ordner obj und die Dateien ContosoUniversity.csproj und .csproj.user werden aus dem gleichen Grund nicht angegeben.

    Klicken Sie auf Veröffentlichen , um die Bereitstellung in der Produktionsumgebung durchzuführen.

  2. Testen Sie in der Produktion nach demselben Verfahren, das Sie für das Staging verwendet haben.

    Alles ist mit Staging identisch, mit Ausnahme der URL und des Fehlens der robots.txt-Datei .

Zusammenfassung

Sie haben Ihre Web-App jetzt erfolgreich bereitgestellt und getestet und ist öffentlich über das Internet verfügbar.

Startseitenproduktion

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

Hinweis

Während Ihre Anwendung in der Produktionsumgebung verwendet wird, sollten Sie einen Wiederherstellungsplan implementieren. Das heißt, Sie sollten Ihre Datenbanken in regelmäßigen Abständen aus der Produktions-App an einem sicheren Speicherort sichern, und Sie sollten mehrere Generationen solcher Sicherungen beibehalten. Wenn Sie die Datenbank aktualisieren, sollten Sie unmittelbar vor der Änderung eine Sicherungskopie erstellen. Wenn Sie dann einen Fehler machen und ihn erst entdecken, nachdem Sie sie in der Produktion bereitgestellt haben, können Sie die Datenbank weiterhin in dem Zustand wiederherstellen, in dem sie sich befand, bevor sie beschädigt wurde. Weitere Informationen finden Sie unter Sichern und Wiederherstellen der Azure SQL-Datenbank.

Hinweis

In diesem Tutorial ist die SQL Server Edition, in der Sie bereitstellen, Azure SQL-Datenbank. Obwohl der Bereitstellungsprozess mit anderen Editionen von SQL Server vergleichbar ist, erfordert eine echte Produktionsanwendung in einigen Szenarien möglicherweise speziellen Code für Azure SQL Datenbank. Weitere Informationen finden Sie unter Arbeiten mit Azure SQL Datenbank und Auswählen zwischen SQL Server und Azure SQL Datenbank.