Share via


Erweiterte webbasierte Unternehmensbereitstellung

von Jason Lee

In diesem Tutorial erfahren Sie, wie Sie verschiedene Aufgaben ausführen, die in vielen Unternehmensbereitstellungsszenarien erforderlich oder wünschenswert sind.

Eine italienische Übersetzung dieser Tutorials finden Sie unter http://www.lucamorelli.it.

Dies ist Teil einer Reihe von Tutorials, die sich auf die Unternehmensbereitstellungsanforderungen eines fiktiven Unternehmens namens Fabrikam, Inc. beziehen. In dieser Tutorialreihe wird eine Beispiellösung – die Contact Manager-Lösung – verwendet, um eine Webanwendung mit einem realistischen Komplexitätsgrad darzustellen, einschließlich einer ASP.NET MVC 3-Anwendung, eines Windows Communication Foundation-Diensts (WCF) und eines Datenbankprojekts.

Die Bereitstellungsmethode, die im Mittelpunkt dieser Tutorials steht, basiert auf dem unter Grundlegendes zum Buildprozess beschriebenen Ansatz der geteilten Projektdatei, bei dem der Buildprozess von zwei Projektdateien gesteuert wird– eine mit Buildanweisungen, die für jede Zielumgebung gelten, und eine mit umgebungsspezifischen Build- und Bereitstellungseinstellungen. Zur Buildzeit wird die umgebungsspezifische Projektdatei in die umgebungsunabhängige Projektdatei zusammengeführt, um einen vollständigen Satz von Buildanweisungen zu bilden.

Übersicht über das Szenario

Das allgemeine Szenario für diese Tutorials wird unter Enterprise Web Deployment: Scenario Overview beschrieben. Es wird empfohlen, dieses Thema zu lesen, bevor Sie mit diesem Tutorial beginnen.

Verwendung dieses Tutorials

  • Jedes der Themen in diesem Tutorial ist eigenständig und behandelt eine bestimmte Herausforderung oder ein bestimmtes Problem, das in Unternehmensbereitstellungsszenarien auftritt. Sie müssen diese Themen nicht in einer bestimmten Reihenfolge durcharbeiten. In diesem Tutorial werden jedoch einige erweiterte Aufgaben behandelt. Daher sollten Sie sich mit den Konzepten und Techniken vertraut machen, die die Webbereitstellung im Enterprise-Tutorial behandelt, um den größten Nutzen aus diesen Inhalten zu ziehen.
  • Dieses Tutorial enthält die folgenden Themen:
  • Durchführen einer "Was wäre wenn"-Bereitstellung. In vielen Szenarien sollten Sie die Auswirkungen einer vorgeschlagenen Bereitstellung auf eine Zielumgebung oder vorhandene Inhalte bestimmen, bevor Sie tatsächlich Änderungen vornehmen. In diesem Thema wird beschrieben, wie Sie eine Was-wäre-wenn-Bereitstellung ausführen können, um Protokolldateien und Datenbankupdateskripts zu generieren, als ob Sie Inhalte in einer Zielumgebung bereitgestellt hätten, ohne tatsächlich Änderungen vorzunehmen. Die Analyse dieser Ressourcen kann Ihnen helfen, potenzielle Probleme im Vorfeld einer Livebereitstellung zu erkennen.
  • Anpassen von Datenbankbereitstellungen für mehrere Umgebungen. Wenn Sie ein Datenbankprojekt für mehrere Ziele bereitstellen, müssen Sie häufig die Bereitstellungseigenschaften für jede Zielumgebung anpassen. Beispielsweise würden Sie in Testumgebungen die Datenbank in der Regel bei jeder Bereitstellung neu erstellen, während Sie in Staging- oder Produktionsumgebungen mit größerer Wahrscheinlichkeit inkrementelle Updates vornehmen würden, um Ihre Daten zu erhalten. In diesem Thema wird beschrieben, wie Sie diese Eigenschaftenänderungen in Ihre Bereitstellungslogik integrieren können, indem Sie eine umgebungsspezifische Bereitstellungskonfigurationsdatei (.sqldeployment) für jede Zielumgebung erstellen.
  • Bereitstellen von Datenbankrollenmitgliedschaften in Testumgebungen. Wenn Sie eine Datenbank in jeder Bereitstellung neu erstellen, z. B. als Teil eines CI-Builds (Continuous Integration) und der Bereitstellung in einer Testumgebung, müssen Sie in der Regel jedes Mal Datenbankrollenmitgliedschaften konfigurieren. Beispielsweise müssen Sie der Anwendungspoolidentität, die Ihrer Webanwendung zugeordnet ist, in der Regel Berechtigungen erteilen. In diesem Thema wird beschrieben, wie Sie diesen Prozess automatisieren können, indem Sie Ihrer Bereitstellungslogik ein SQL-Skript nach der Bereitstellung hinzufügen.
  • Bereitstellen von Mitgliedschaftsdatenbanken in Unternehmensumgebungen. ASP.NET Mitgliedschaftsdatenbanken weisen verschiedene Merkmale auf, die den Bereitstellungsprozess erschweren können. Bei einer reinen Schemabereitstellung wird die Datenbank beispielsweise nicht betriebsbereit. In den meisten Szenarien empfiehlt es sich, eine Mitgliedschaftsdatenbank direkt in jeder Zielumgebung zu erstellen. Wenn Sie jedoch eine Mitgliedschaftsdatenbank bereitstellen müssen, werden in diesem Thema einige der Ansätze beschrieben, die Sie verwenden können, um die inhärenten Herausforderungen zu bewältigen.
  • Ausschließen von Dateien und Ordnern aus der Bereitstellung. In einigen Szenarien sollten Sie den Inhalt Ihres Webpakets an bestimmte Zielumgebungen anpassen. Beispielsweise sollten Sie bei der Bereitstellung in einer Testumgebung Vollversionen von JavaScript-Bibliotheken einschließen, um das clientseitige Debuggen zu unterstützen, aber bei der Bereitstellung in einer Staging- oder Produktionsumgebung können Sie bei der Bereitstellung in einer Staging- oder Produktionsumgebung jedoch minimale Versionen der Bibliotheken verwenden. In diesem Thema wird beschrieben, wie Sie bestimmte Dateien und Ordner aus dem Paketerstellungsprozess ausschließen können.
  • Offline schalten von Webanwendungen mit Web Deploy. Wenn Sie Lösungen in einer Staging- oder Produktionsumgebung bereitstellen, sollten Sie Ihre Webanwendungen häufig für die Dauer des Bereitstellungsprozesses offline schalten. In diesem Thema wird beschrieben, wie Sie Ihrer Webanwendung zu Beginn des Bereitstellungsprozesses eine App_offline.htm-Datei hinzufügen und am Ende entfernen können. Während die App_offline.htm-Datei vorhanden ist, werden alle Benutzer, die zur Webanwendung navigieren, automatisch zur App_offline.htm-Datei umgeleitet.
  • Ausführen Windows PowerShell Skripts aus MSBuild. Viele Bereitstellungsszenarien erfordern komplexere Aktionen nach der Bereitstellung, z. B. das Hinzufügen benutzerdefinierter Ereignisquellen zur Registrierung oder das Konfigurieren der Replikation zwischen SQL Server Instanzen. Diese Aktionen werden häufig durch Windows PowerShell Skripts ausgeführt. In diesem Thema wird beschrieben, wie Windows PowerShell Skripts aus einer MSBuild-Projektdatei (Microsoft-Build-Engine) im Rahmen des Build- und Bereitstellungsprozesses ausgeführt werden.
  • Problembehandlung für den Paketerstellungsprozess. Die Web Publishing Pipeline (WPP) definiert eine MSBuild-Eigenschaft namens EnablePackageProcessLoggingAndAssert , die Sie verwenden können, um ausführliche Informationen zum Verpackungsprozess für Webanwendungsprojekte zu generieren. In diesem Thema wird beschrieben, was die -Eigenschaft tut und wie sie verwendet wird.

Schlüsseltechnologien

Dieses Tutorial konzentriert sich auf die Verwendung dieser Produkte und Technologien zur Unterstützung der automatisierten Erstellung und Webbereitstellung:

  • Visual Studio 2010 und Team Foundation Server (TFS) 2010
  • MSBuild und TFS-Teambuild
  • Internetinformationsdienste (IIS) 7.5
  • IIS-Webbereitstellungstool (Web Deploy) 2.1
  • Das VSDBCMD.exe-Datenbankbereitstellungs-Hilfsprogramm

Weitere Tutorials in dieser Reihe

Dies ist Teil einer Reihe von fünf Tutorials zur Webbereitstellung auf Unternehmensniveau. Dies sind weitere Tutorials in der Reihe:

  • Bereitstellen von Webanwendungen in Unternehmensszenarien. Dieser Einführungsinhalt bietet den kontextbezogenen Hintergrund für die Tutorialreihe. Es beschreibt das Tutorialszenario und veranschaulicht, wie die in der Reihe beschriebenen Aufgaben und exemplarischen Vorgehensweisen in einen umfassenderen ALM-Prozess (Application Lifecycle Management) passen.
  • Webbereitstellung im Unternehmen. Dieses Tutorial bietet eine konzeptionelle Einführung in MSBuild-Projektdateien, WPP, Web Deploy und andere verwandte Technologien. Es wird erläutert, wie Sie diese Tools zusammen verwenden können, um komplexe Bereitstellungsprozesse zu verwalten.
  • Konfigurieren von Serverumgebungen für die Webbereitstellung. In diesem Tutorial wird beschrieben, wie Sie Windows-Server konfigurieren, um verschiedene Bereitstellungsszenarien zu unterstützen, einschließlich der Bereitstellung von Remotewebpaketen mithilfe des Web Deployment Agent-Diensts (Remote-Agent) oder des Webbereitstellungshandlers und der Bereitstellung von Remotedatenbanken. Es enthält Anleitungen zur Auswahl der geeigneten Bereitstellungsmethode für Ihre eigene Umgebung und beschreibt, wie Sie das Web Farm Framework (WFF) verwenden, um bereitgestellte Webanwendungen auf allen Webservern in einer Serverfarm zu replizieren.
  • Konfigurieren von Team Foundation Server für die Webbereitstellung. In diesem Tutorial wird beschrieben, wie Sie TFS konfigurieren, um verschiedene Bereitstellungsszenarien zu unterstützen, einschließlich der automatisierten Bereitstellung als Teil eines CI-Prozesses und manuell ausgelösten Bereitstellungen bestimmter Builds.