Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Tom Dykstra
In dieser Lernprogrammreihe wird gezeigt, wie Sie eine ASP.NET Webanwendung für Azure-App Service-Web-Apps oder für einen Drittanbieter mit Visual Studio 2017 bereitstellen (veröffentlichen). Informationen zur Reihe finden Sie im ersten Lernprogramm in der Reihe.
Eine aktuelle Version der Bereitstellung in Azure finden Sie unter Erstellen einer ASP.NET Core Web App in Azure.
Übersicht
In dieser Anleitung stellen Sie eine ASP.NET-Webanwendung für Internetinformations-Server (IIS) auf Ihrem lokalen Computer bereit.
Wenn Sie eine Anwendung entwickeln, führen Sie sie im Allgemeinen aus, und testen Sie sie in Visual Studio. Standardmäßig verwenden Webanwendungsprojekte in Visual Studio 2017 IIS Express als Entwicklungswebserver. IIS Express verhält sich eher wie vollständiges IIS als der Visual Studio Development Server (auch als Cassini bezeichnet), den Visual Studio 2017 standardmäßig verwendet. Aber keines der Entwicklungswebserver funktioniert genau wie IIS. Daher konnte eine App in Visual Studio ordnungsgemäß ausgeführt und getestet werden, schlägt jedoch fehl, wenn sie in IIS bereitgestellt wird.
Sie können Ihre Anwendung auf zwei Arten zuverlässig testen:
Stellen Sie Ihre Anwendung auf Ihrem Entwicklungscomputer mithilfe desselben Prozesses auf IIS bereit, den Sie später verwenden werden, um sie in Ihrer Produktionsumgebung bereitzustellen.
Sie können Visual Studio so konfigurieren, dass IIS verwendet wird, wenn Sie ein Webprojekt ausführen, aber das würde den Bereitstellungsprozess nicht testen. Mit dieser Methode wird der Bereitstellungsprozess validiert, und es wird sichergestellt, dass die Anwendung ordnungsgemäß unter IIS ausgeführt wird.
Stellen Sie Ihre Anwendung in einer Testumgebung bereit, die Ihrer Produktionsumgebung ähnelt.
Die Produktivumgebung für diese Tutorials ist Web-Apps im Azure App Service. Die ideale Testumgebung ist eine zusätzliche Web-App, die im Azure-Dienst erstellt wurde. Obwohl es auf die gleiche Weise wie eine Produktionsweb-App eingerichtet wäre, würden Sie sie nur zum Testen verwenden.
Option 2 ist die zuverlässigste Methode zum Testen. Wenn Sie Option 2 verwenden, müssen Sie option 1 nicht unbedingt verwenden. Wenn Sie jedoch für einen Drittanbieter-Hostinganbieter bereitstellen, ist Option 2 möglicherweise nicht machbar oder teuer, sodass diese Lernprogrammreihe beide Methoden zeigt. Anleitungen für Option 2 finden Sie im Tutorial *Bereitstellen in der Produktionsumgebung*.
Weitere Informationen zur Verwendung von Webservern in Visual Studio finden Sie unter Webserver in Visual Studio für ASP.NET Webprojekte.
Erinnerung: Wenn Sie eine Fehlermeldung erhalten oder etwas nicht funktioniert, während Sie das Lernprogramm durchlaufen, überprüfen Sie unbedingt die Problembehandlungsseite.
Herunterladen des Startprojekts der Contoso University
Laden Sie die Startlösung und das Projekt der Contoso University Visual Studio herunter, und installieren Sie sie. Diese Lösung enthält das fertige Lernprogramm.
Installieren von IIS
Um IIS auf Ihrem Entwicklungsrechner zu deployen, stellen Sie sicher, dass IIS und Web Deploy installiert sind. Standardmäßig installiert Visual Studio Web Deploy, IIS ist jedoch nicht in der Standardmäßigkonfiguration von Windows 10, Windows 8 oder Windows 7 enthalten. Wenn Sie IIS bereits installiert haben und der Standardanwendungspool bereits auf .NET 4 festgelegt ist, fahren Sie mit dem nächsten Abschnitt fort.
Es wird empfohlen, den Webplattform-Installer (WPI) zum Installieren von IIS und Web Deploy zu verwenden. WPI installiert bei Bedarf eine empfohlene IIS-Konfiguration, die erforderliche IIS- und Webbereitstellungsvoraussetzungen enthält.
Wenn Sie IIS, Web Deploy oder eine der erforderlichen Komponenten bereits installiert haben, installiert der WPI nur das, was fehlt.
Verwenden Sie den Webplattform-Installer, um IIS und Web Deploy zu installieren:
Es werden Meldungen angezeigt, die angeben, dass IIS 7 installiert wird. Der Link funktioniert für IIS 8 in Windows 8; Führen Sie für Windows 8 und höher jedoch die folgenden Schritte aus, um sicherzustellen, dass ASP.NET 4.7 installiert ist:
Öffnen Sie Systemsteuerung>Programme>Programme und Funktionen>Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internet Information Services, World Wide Web Services und Anwendungsentwicklungskomponenten.
Vergewissern Sie sich, dass ASP.NET 4.7 ausgewählt ist.
Vergewissern Sie sich, dass World Wide Web Services und IIS Management Console ausgewählt sind. Dadurch wird IIS- und IIS-Manager installiert.
Wählen Sie OK aus. Dialogfeldmeldungen, die angeben, dass die Installation stattfindet, erscheinen.
Führen Sie nach der Installation von IIS IIS-Manager aus, um sicherzustellen, dass die .NET Framework-Version 4 dem Standardanwendungspool zugewiesen ist.
Drücken Sie WINDOWS+R, um das Dialogfeld "Ausführen " zu öffnen.
(Geben Sie unter Windows 8 oder höher "Ausführen" auf der Startseite ein. Wählen Sie unter Windows 7 im Startmenü die Option "Ausführen" aus. Wenn "Ausführen" nicht im Startmenü angezeigt wird, klicken Sie mit der rechten Maustaste auf die Taskleiste, wählen Sie "Eigenschaften" aus, wählen Sie die Registerkarte "Startmenü" aus, wählen Sie "Anpassen" und dann "Befehl Ausführen" aus.)
Geben Sie "inetmgr" ein, und wählen Sie "OK" aus.
Erweitern Sie im Bereich "Verbindungen" den Serverknoten, und wählen Sie "Anwendungspools" aus. Wenn "DefaultAppPool" der .NET Framework-Version 4 wie in der folgenden Abbildung zugewiesen ist, fahren Sie im Bereich "Anwendungspools" mit dem nächsten Abschnitt fort.
Wenn nur zwei Anwendungspools angezeigt werden und beide auf .NET Framework 2.0 festgelegt sind, installieren Sie ASP.NET 4 in IIS.
Informationen zu Windows 8 oder höher finden Sie in den Anweisungen des vorherigen Abschnitts, um sicherzustellen, dass ASP.NET 4.7 installiert ist oder wie Sie ASP.NET 4.5 unter Windows 8 und Windows Server 2012 installieren. Öffnen Sie für Windows 7 ein Eingabeaufforderungsfenster, indem Sie im Windows-Startmenü mit der rechten Maustaste auf die Eingabeaufforderung klicken und "Als Administrator ausführen" auswählen. Führen Sie aspnet_regiis.exe aus, um ASP.NET 4 in IIS mithilfe der folgenden Befehle zu installieren. (Ersetzen Sie in 32-Bit-Systemen "Framework64" durch "Framework".)
cd %windir%\Microsoft.NET\Framework64\v4.0.30319 aspnet_regiis.exe –iMit diesem Befehl werden neue Anwendungspools für .NET Framework 4 erstellt, der Standardanwendungspool bleibt jedoch auf 2.0 festgelegt. Sie stellen eine Anwendung bereit, die auf .NET 4 für diesen Anwendungspool ausgerichtet ist. Ändern Sie daher den Anwendungspool in .NET 4.
Wenn Sie IIS-Manager geschlossen haben, führen Sie ihn erneut aus, erweitern Sie den Serverknoten, und wählen Sie Anwendungspools aus.
Wählen Sie im Bereich "Anwendungspools " " DefaultAppPool" aus. Wählen Sie im Bereich "Aktionen" die Option "Standardeinstellungen" aus.
Ändern Sie im Dialogfeld "Anwendungspool bearbeiten" die .NET CLR-Version in .NET CLR v4.0.30319. Wählen Sie OK aus.
Sie können jetzt eine Webanwendung in IIS veröffentlichen. Erstellen Sie zunächst jedoch Datenbanken für Tests.
SQL Server Express installieren
LocalDB ist nicht für die Arbeit in IIS konzipiert, sodass Ihre Testumgebung SQL Server Express installiert haben muss. Wenn Sie Visual Studio 2010 SQL Server Express verwenden, ist sie standardmäßig bereits installiert. Wenn Sie Visual Studio 2012 oder höher verwenden, installieren Sie SQL Server Express.
Um SQL Server Express zu installieren, laden Sie es von Download Center: Microsoft SQL Server 2017 Express Edition herunter und installieren Sie es.
Wählen Sie auf der ersten Seite des SQL Server Installation Centers eine eigenständige SQL Server-Installation aus , oder fügen Sie einer vorhandenen Installation Features hinzu, und befolgen Sie die Anweisungen, die die Standardoptionen akzeptieren. Übernehmen Sie im Installations-Assistenten die Standardeinstellungen. Weitere Informationen zu Installationsoptionen finden Sie unter Installieren von SQL Server mit dem Installations-Assistenten (Setup).
Erstellen von SQL Server Express-Datenbanken für die Testumgebung
Die Contoso University-Anwendung verfügt über zwei Datenbanken:
- Mitgliedschaftsdatenbank
- Anwendungsdatenbank
Sie können diese Datenbanken in zwei separaten Datenbanken oder in einer einzelnen Datenbank bereitstellen. Ihre Kombination macht Datenbank-Joins zwischen ihnen einfacher.
Wenn Sie eine Bereitstellung auf einem Drittanbieterhostinganbieter ausführen, gibt Ihnen Ihr Hostingplan möglicherweise auch einen Grund, sie zu kombinieren. Beispielsweise kann der Anbieter mehr für mehrere Datenbanken berechnen oder nicht einmal mehr als eine Datenbank zulassen.
In diesem Lernprogramm werden Sie in zwei Datenbanken in der Testumgebung und in einer Datenbank in der Staging- und Produktionsumgebung bereitstellen.
Wählen Sie im Menü "Ansicht" in Visual Studio den Server-Explorer (Datenbank-Explorer in Visual Web Developer) aus. Klicken Sie mit der rechten Maustaste auf "Datenverbindungen", und wählen Sie "Neue SQL Server-Datenbank erstellen" aus.
Geben Sie im Dialogfeld "Neue SQL Server-Datenbank erstellen" im Feld "Servername" und "aspnet-ContosoUniversity" im Feld "Neuer Datenbankname" ".\SQLExpress" ein. Wählen Sie OK aus.
Führen Sie dasselbe Verfahren aus, um eine neue SQL Server Express School-Datenbank namens ContosoUniversityzu erstellen.
Der Server-Explorer zeigt die beiden neuen Datenbanken an.
Erstellen Sie ein Berechtigungsskript für die neuen Datenbanken
Wenn die Anwendung in IIS auf Ihrem Entwicklungscomputer ausgeführt wird, verwendet die Anwendung die Anmeldeinformationen des Standardanwendungspools, um auf die Datenbank zuzugreifen. Standardmäßig verfügt der Anwendungspool jedoch nicht über die Berechtigung zum Öffnen der Datenbanken. Dies bedeutet, dass Sie ein Skript ausführen müssen, um diese Berechtigung zu erteilen. In diesem Abschnitt erstellen Sie dieses Skript und führen es später aus, um sicherzustellen, dass die Anwendung die Datenbanken öffnen kann, wenn es in IIS ausgeführt wird.
Kopieren Sie in einem Text-Editor die folgenden SQL-Befehle in eine neue Datei, und speichern Sie sie als Grant.sql.
IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
CREATE LOGIN [IIS APPPOOL\DefaultAppPool]
FROM WINDOWS WITH DEFAULT_DATABASE=[master],
DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser]
FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO
Öffnen Sie in Visual Studio die Contoso University-Lösung. Klicken Sie mit der rechten Maustaste auf die Projektmappe (keines der Projekte), und wählen Sie Hinzufügen aus. Wählen Sie "Vorhandenes Element" aus, navigieren Sie zu Grant.sql, und öffnen Sie es.
Hinweis
Dieses Skript wurde entwickelt, um mit SQL Server Express 2012 oder höher und mit den IIS-Einstellungen in Windows 10, Windows 8 oder Windows 7 zu arbeiten, wie sie in diesem Lernprogramm angegeben sind. Wenn Sie eine andere Version von SQL Server oder Windows verwenden oder IIS auf Ihrem Computer anders einrichten, sind möglicherweise Änderungen an diesem Skript erforderlich. Weitere Informationen zu SQL Server-Skripts finden Sie unter SQL Server Books Online.
Hinweis
Sicherheitshinweis Dieses Skript gewährt db_owner dem Benutzer Berechtigungen, der zur Laufzeit auf die Datenbank zugreift, wie es in der Produktionsumgebung der Fall sein wird. In einigen Szenarien möchten Sie möglicherweise einen Benutzer angeben, der nur über vollständige Berechtigungen zur Aktualisierung des Datenbankschemas ausschließlich für die Bereitstellung verfügt, und einen anderen Benutzer, der nur über Berechtigungen zum Lesen und Schreiben von Daten zur Laufzeit verfügt. Weitere Informationen finden Sie unter "Überprüfung der automatischen Web.config-Änderungen für Code First-Migrationen" weiter in diesem Tutorial.
Führen Sie das Grant-Skript in der Anwendungsdatenbank aus
Sie können das Veröffentlichungsprofil so konfigurieren, dass das Grant-Skript in der Mitgliedschaftsdatenbank während der Bereitstellung ausgeführt wird, da diese Datenbankbereitstellung den dbDacFx-Anbieter verwendet. Skripte können während der Bereitstellung mit Code First-Migrationen nicht ausgeführt werden, was die Methode ist, mit der die Anwendungsdatenbank bereitgestellt wird. Dies bedeutet, dass Sie das Skript vor der Bereitstellung in der Anwendungsdatenbank manuell ausführen müssen.
Öffnen Sie in Visual Studio die zuvor erstellte Grant.sql Datei.
Wählen Sie Verbinden.
Geben Sie im Dialogfeld "Mit Server verbinden" .\SQLExpress als Servername ein. Wählen Sie Verbinden.
Wählen Sie in der Dropdownliste der Datenbank ContosoUniversity aus. Wählen Sie Execute(Ausführen).
Die Standardmäßige Anwendungspoolidentität verfügt jetzt über ausreichende Berechtigungen in der Anwendungsdatenbank, damit Code First-Migrationen die Datenbanktabellen erstellen können, wenn die Anwendung ausgeführt wird.
Veröffentlichen in IIS
Es gibt verschiedene Möglichkeiten, wie Sie iis mithilfe von Visual Studio und Web Deploy bereitstellen können:
- Verwenden Sie die Ein-Klick-Veröffentlichung in Visual Studio.
- Veröffentlichen sie über die Befehlszeile.
- Erstellen Sie ein Bereitstellungspaket, und installieren Sie es mithilfe des IIS-Managers. Das Paket verfügt über eine .zip Datei mit allen Dateien und Metadaten, die zum Installieren einer Website in IIS erforderlich sind.
- Erstellen Sie ein Bereitstellungspaket, und installieren Sie es mithilfe der Befehlszeile.
Der Prozess, den Sie in den vorherigen Lernprogrammen zum Einrichten von Visual Studio zum Automatisieren von Bereitstellungsaufgaben durchlaufen haben, gilt für alle diese Methoden. In diesen Lernprogrammen verwenden Sie die ersten beiden Methoden. Informationen zum Verwenden von Bereitstellungspaketen finden Sie unter Bereitstellen einer Webanwendung durch Erstellen und Installieren eines Webbereitstellungspakets in der Inhaltszuordnung für Webbereitstellung für Visual Studio und ASP.NET.
Stellen Sie vor der Veröffentlichung sicher, dass Visual Studio im Administratormodus ausgeführt wird. Wenn in der Titelleiste (Administrator) nicht angezeigt wird, schließen Sie Visual Studio. Klicken Sie auf der Startseite von Windows 8 (oder höher) oder im Windows 7-Startmenü mit der rechten Maustaste auf das Visual Studio-Symbol, und wählen Sie "Als Administrator ausführen" aus. Der Administratormodus ist nur für die Veröffentlichung erforderlich, wenn Sie auf dem lokalen Computer auf IIS veröffentlichen.
Erstellen des Veröffentlichungsprofils
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ContosoUniversity (nicht auf das Projekt ContosoUniversity.DAL). Wählen Sie Veröffentlichen aus. Die Seite "Veröffentlichen" wird angezeigt.
Wählen Sie "Neues Profil" aus. Das Dialogfeld "Ziel veröffentlichen auswählen" wird angezeigt.
Wählen Sie IIS, FTP usw. aus. Wählen Sie " Profil erstellen" aus. Der Veröffentlichen-Assistent wird angezeigt.
Wählen Sie im Dropdown-Menü 'Veröffentlichen-Methode' die Option 'Web Deploy' aus.
Geben Sie für Server "localhost" ein.
Geben Sie für Site nameDefault Web Site/ContosoUniversity ein.
Geben Sie für die Ziel-URL ein http://localhost/ContosoUniversity.
Die Ziel-URL-Einstellung ist nicht erforderlich. Wenn Visual Studio die Bereitstellung der Anwendung abgeschlossen hat, wird ihr Standardbrowser automatisch mit dieser URL geöffnet. Wenn der Browser nach der Bereitstellung nicht automatisch geöffnet werden soll, lassen Sie dieses Feld leer.
Wählen Sie "Verbindung überprüfen" aus, um zu überprüfen, ob die Einstellungen korrekt sind, und Sie können eine Verbindung mit IIS auf dem lokalen Computer herstellen.
Ein grünes Häkchen überprüft, ob die Verbindung erfolgreich ist.
Wählen Sie "Weiter" aus, um zur Registerkarte "Einstellungen" zu wechseln.
Das Dropdownfeld "Konfiguration " gibt die bereitzustellende Buildkonfiguration an. Lassen Sie es auf dem Standardwert Release belassen. In diesem Lernprogramm werden keine Debug-Builds bereitgestellt oder installiert.
Erweitern Sie die Optionen zum Veröffentlichen von Dateien. Wählen Sie "Dateien aus dem ordner App_Data ausschließen" aus.
In der Testumgebung greift die Anwendung auf die Datenbanken zu, die Sie in der lokalen SQL Server Express-Instanz erstellt haben, nicht auf die .mdf Dateien im Ordner App_Data .
Lassen Sie die Kontrollkästchen Precompile während der Veröffentlichung und Zusätzliche Dateien am Ziel entfernen unmarkiert.
Die Vorkompilierung ist eine Option, die hauptsächlich für große Websites nützlich ist. Sie kann die Startzeit verringern, wenn eine Seite zum ersten Mal angefordert wird, nachdem die Website veröffentlicht wurde.
Sie müssen keine zusätzlichen Dateien entfernen, da dies Ihre erste Bereitstellung ist und noch keine Dateien im Zielordner vorhanden sind.
Hinweis
Wenn Sie für eine nachfolgende Bereitstellung auf derselben Website die Option Zusätzliche Dateien am Ziel entfernen auswählen, stellen Sie sicher, dass Sie die Vorschaufunktion verwenden, damit Sie vorab sehen, welche Dateien vor der Bereitstellung gelöscht werden. Das erwartete Verhalten besteht darin, dass Web Deploy Dateien auf dem Zielserver löscht, den Sie in Ihrem Projekt gelöscht haben. Die gesamte Ordnerstruktur unter den Quell- und Zielordnern wird jedoch verglichen; und in einigen Szenarien löscht Web Deploy möglicherweise Dateien, die Sie nicht löschen möchten.
Wenn Sie beispielsweise eine Webanwendung in einem Unterordner auf dem Server haben, wenn Sie ein Projekt im Stammordner bereitstellen, wird der Unterordner gelöscht. Möglicherweise haben Sie ein Projekt für die Hauptwebsite auf contoso.com und ein anderes Projekt für einen Blog unter contoso.com/blog. Die Bloganwendung befindet sich in einem Unterordner. Wenn Sie bei der Bereitstellung der Hauptwebsite die Option Zusätzliche Dateien am Ziel entfernen auswählen, wird dadurch die Bloganwendung gelöscht.
Ein weiteres Beispiel: Ihr App_Data Ordner wird möglicherweise unerwartet gelöscht. Bestimmte Datenbanken wie SQL Server Compact speichern Datenbankdateien im ordner App_Data. Nach der ersten Bereitstellung möchten Sie die Datenbankdateien bei nachfolgenden Bereitstellungen nicht mehr kopieren. Daher wählen Sie auf der Registerkarte "Paket/Veröffentlichen Web" die Option "App_Data ausschließen" aus. Wenn Sie dabei die Option "Zusätzliche Dateien am Ziel entfernen" ausgewählt haben, werden beim nächsten Veröffentlichen Ihre Datenbankdateien und der App_Data-Ordner selbst gelöscht.
Konfigurieren der Bereitstellungsprozesse für die Mitgliedschaftsdatenbank
Die folgenden Schritte gelten für die DefaultConnection-Datenbank im Abschnitt "Datenbanken" des Dialogfelds.
Geben Sie im Feld "Remote-Verbindungszeichenfolge" die folgende Verbindungszeichenfolge ein, die auf die neue SQL Server Express-Mitgliedschaftsdatenbank verweist.
Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=TrueDer Bereitstellungsprozess fügt diese Verbindungszeichenfolge in die bereitgestellte Web.config-Datei ein, weil Verwenden Sie diese Verbindungszeichenfolge zur Laufzeit ausgewählt ist.
Sie können auch die Verbindungszeichenfolge aus dem Server-Explorer abrufen. Erweitern Sie im Server-Explorer die Datenverbindungen und wählen Sie die Datenbank <machinename>\sqlexpress.aspnet-ContosoUniversity aus, und kopieren Sie dann im Eigenschaftenfenster den Wert der Verbindungszeichenfolge. Diese Verbindungszeichenfolge verfügt über eine zusätzliche Einstellung, die Sie löschen können:
Pooling=False.Wählen Sie " Datenbank aktualisieren" aus.
Dies bewirkt, dass das Datenbankschema während der Bereitstellung in der Zieldatenbank erstellt wird. In den nächsten Schritten geben Sie die zusätzlichen Skripts an, die Sie ausführen müssen: eines zum Gewähren des Datenbankzugriffs auf den Standardanwendungspool und eines zum Bereitstellen von Daten.
Wählen Sie " Datenbankaktualisierungen konfigurieren" aus.
Wählen Sie im Dialogfeld "Datenbankaktualisierungen konfigurieren" die Option "SQL-Skript hinzufügen" aus. Navigieren Sie zum Grant.sql Skript, das Sie zuvor im Lösungsordner gespeichert haben.
Wiederholen Sie den Vorgang, um das aspnet-data-dev.sql Skript hinzuzufügen.
Wählen Sie Schließen aus.
Konfigurieren der Bereitstellung für die Anwendungsdatenbank
Wenn Visual Studio eine Entity Framework-Klasse DbContext erkennt, wird ein Eintrag im Abschnitt „Datenbanken“ mit einem Kontrollkästchen „Code First-Migrationen ausführen“ anstelle eines Kontrollkästchens „Datenbank aktualisieren“ erstellt. In diesem Lernprogramm verwenden Sie dieses Kontrollkästchen, um die Bereitstellung von Code First-Migrationen anzugeben.
In einigen Szenarien verwenden Sie möglicherweise eine DbContext Datenbank, aber Sie möchten den dbDacFx-Anbieter anstelle von Migrationen verwenden, um die Datenbank bereitzustellen. Lesen Sie in den FAQ zur ASP.NET-Webbereitstellung auf MSDN unter Wie stelle ich eine Code-First-Datenbank ohne Migrationen bereit?.
Die folgenden Schritte gelten für die SchoolContext-Datenbank im Abschnitt "Datenbanken" des Dialogfelds.
Geben Sie im Feld "Remote Verbindungszeichenfolge" die folgende Verbindungszeichenfolge ein, die auf die neue SQL Server Express-Anwendungsdatenbank verweist.
Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=TrueDer Bereitstellungsprozess fügt diese Verbindungszeichenfolge in die bereitgestellte Web.config-Datei ein, weil Verwenden Sie diese Verbindungszeichenfolge zur Laufzeit ausgewählt ist.
Sie können auch die Anwendungsdatenbank Verbindungszeichenfolge auf die gleiche Weise aus dem Server-Explorer abrufen, wie Sie die Mitgliedschaftsdatenbank Verbindungszeichenfolge erhalten haben.
Wählen Sie Code First-Migrationen ausführen (wird beim Starten der Anwendung ausgeführt) aus.
Diese Option bewirkt, dass der Bereitstellungsprozess die bereitgestellte Web.config-Datei so konfiguriert, dass der
MigrateDatabaseToLatestVersionInitialisierer angegeben wird. Dieser Initialisierer aktualisiert die Datenbank automatisch auf die neueste Version, wenn die Anwendung nach der Bereitstellung zum ersten Mal auf die Datenbank zugreift.
Konfigurieren von Veröffentlichungsprofiltransformationen
Wählen Sie Schließen aus. Wählen Sie "Ja " aus, wenn Sie gefragt werden, ob Sie Änderungen speichern möchten.
In Projektmappen-Explorer erweitern Sie Eigenschaften und dann PublishProfiles.
Klicken Sie mit der rechten Maustaste auf CustomProfile.pubxml , und benennen Sie sie in "Test.pubxml" um.
Klicken Sie mit der rechten Maustaste auf "Test.pubxml". Wählen Sie Add Config Transform aus.
Visual Studio erstellt die Transformationsdatei "Web.Test.config " und öffnet sie.
Fügen Sie in der Transformationsdatei Web.Test.config den folgenden Code unmittelbar nach dem öffnenden Konfigurationstag ein.
<appSettings> <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/> </appSettings>Wenn Sie das Testveröffentlichungsprofil verwenden, legt diese Transformation den Umgebungsindikator auf "Test" fest. Auf der bereitgestellten Website wird hinter der Überschrift "Contoso University" der Zusatz "(Test)" bei H1 angezeigt.
Speichern und schließen Sie die Datei.
Klicken Sie mit der rechten Maustaste auf die Datei "Web.Test.config ", und wählen Sie "Vorschautransformation " aus, um sicherzustellen, dass die codierte Transformation die erwarteten Änderungen erzeugt.
Das Web.config Preview-Fenster zeigt das Ergebnis der Anwendung der Transformationen von Web.Release.config und der Web.Test.config-Transformationen an.
Vorschau der Bereitstellungsupdates
Öffnen Sie den Assistenten zum Veröffentlichen von Web erneut (klicken Sie mit der rechten Maustaste auf das Projekt ContosoUniversity, wählen Sie "Veröffentlichen" und dann "Vorschau" aus).
Wählen Sie im Dialogfeld "Vorschau " die Option "Vorschau starten" aus, um eine Liste der Dateien anzuzeigen, die kopiert werden sollen.
Sie können auch den Vorschaudatenbanklink auswählen, um die Skripts anzuzeigen, die in der Mitgliedschaftsdatenbank ausgeführt werden. Es werden keine Skripte für die Bereitstellung von Code-First-Migrationen ausgeführt, sodass keine Voransicht für die Anwendungsdatenbank verfügbar ist.
Wählen Sie Veröffentlichen aus.
Wenn Sich Visual Studio nicht im Administratormodus befindet, wird möglicherweise eine Fehlermeldung zu Berechtigungen angezeigt. Schließen Sie in diesem Fall Visual Studio, öffnen Sie es im Administratormodus, und versuchen Sie erneut, zu veröffentlichen.
Wenn Sich Visual Studio im Administratormodus befindet, meldet das Ausgabefenster erfolgreiche Erstellung und Veröffentlichung.
Wenn Sie die URL im Feld "Ziel-URL" auf der Registerkarte "Verbindung" des Veröffentlichungsprofils eingegeben haben, öffnet sich der Browser automatisch zur Startseite der Contoso University, die auf Ihrem Computer in IIS ausgeführt wird.
Testen in der Testumgebung
Beachten Sie, dass der Umgebungsindikator "(Test)" anstelle von "(Dev)" anzeigt, was zeigt, dass die Web.config-Transformation für den Umgebungsindikator erfolgreich war.
Führen Sie die Seite "Kursleiter" aus, um zu überprüfen, ob Code First die Datenbank mit Kursleiterdaten befüllt hat. Wenn Sie diese Seite auswählen, kann es einige Minuten dauern, da Code Zuerst die Datenbank erstellt und dann die Seed Methode ausführt. (Dies passierte nicht, als Sie auf der Startseite waren, weil die Anwendung noch nicht versucht hatte, auf die Datenbank zuzugreifen.)
Wählen Sie die Registerkarte "Kursteilnehmer " aus, um zu überprüfen, ob die bereitgestellte Datenbank keine Kursteilnehmer enthält.
Wählen Sie im Menü "Kursteilnehmer" die Option "Kursteilnehmer hinzufügen" aus. Fügen Sie einen Kursteilnehmer hinzu, und zeigen Sie dann den neuen Kursteilnehmer auf der Seite "Kursteilnehmer " an. Dadurch wird überprüft, ob Sie erfolgreich in die Datenbank schreiben können.
Wählen Sie im Menü "Kurse" die Option "Guthaben aktualisieren" aus. Die Seite "Guthaben aktualisieren" erfordert Administratorberechtigungen, sodass die Anmeldeseite angezeigt wird. Geben Sie die Anmeldeinformationen des Administratorkontos ein, die Sie zuvor erstellt haben ("Administrator" und "devpwd"). Die Seite "Guthaben aktualisieren" wird angezeigt. Dadurch wird überprüft, ob das Administratorkonto, das Sie im vorherigen Lernprogramm erstellt haben, ordnungsgemäß in der Testumgebung bereitgestellt wurde.
Stellen Sie sicher, dass ein ELMAH-Ordner im Ordner "c:\inetpub\wwwroot\ContosoUniversity " vorhanden ist, in dem nur die Platzhalterdatei enthalten ist.
Überprüfen der automatischen Änderungen der Web.config für Code-First-Migrationen
Öffnen Sie die Datei "Web.config" in der bereitgestellten Anwendung unter C:\inetpub\wwwroot\ContosoUniversity, und Sie können sehen, wie der Bereitstellungsprozess Code First-Migrationen konfiguriert hat, um die Datenbank automatisch auf die neueste Version zu aktualisieren.
Der Bereitstellungsprozess hat außerdem eine neue Verbindungszeichenfolge für Code First-Migrationen erstellt, die ausschließlich zum Aktualisieren des Datenbankschemas verwendet werden:
Mit diesem zusätzlichen Verbindungszeichenfolge können Sie ein Benutzerkonto für Datenbankschemaaktualisierungen und ein anderes Benutzerkonto für den Anwendungsdatenzugriff angeben. Beispielsweise können Sie der Code First-Migrationen die Rolle db_owner und der Anwendung die Rollen db_datareader und db_datawriter zuweisen. Dies ist ein gängiges Abwehrmuster, das das Ändern des Datenbankschemas durch potenziell schädlichen Code in der Anwendung verhindert. (Dies kann z. B. bei einem erfolgreichen SQL-Injektionsangriff geschehen.) Diese Lernprogramme verwenden dieses Muster nicht. Führen Sie die folgenden Schritte aus, um dieses Muster in Ihrem Szenario zu implementieren:
Geben Sie im Assistenten „Web veröffentlichen“ auf der Registerkarte „Einstellungen“ die Verbindungszeichenfolge ein, die einen Benutzer mit vollständigen Berechtigungen zur Aktualisierung des Datenbankschemas angibt. Deaktivieren Sie die Checkbox 'Verbindungszeichenfolge zur Laufzeit verwenden'. In bereitgestellter Datei "Web.config" wird dies zur Verbindungszeichenfolge
DatabasePublish.Erstellen Sie eine Web.config-Dateitransformation für die Verbindungszeichenfolge, die die Anwendung zur Laufzeit verwenden soll.
Zusammenfassung
Sie haben Ihre Anwendung jetzt auf Ihrem Entwicklungscomputer auf IIS bereitgestellt und dort getestet.
Dadurch wird überprüft, ob der Bereitstellungsprozess den Inhalt der Anwendung an den richtigen Speicherort kopiert hat (mit Ausnahme der Dateien, die Sie nicht bereitstellen wollten) und dass Web Deploy IIS während der Bereitstellung ordnungsgemäß konfiguriert hat. Im nächsten Tutorial führen Sie einen weiteren Test durch, der eine noch nicht abgeschlossene Bereitstellungsaufgabe identifiziert: die Zuweisung von Ordnerberechtigungen auf den Elm ah Ordner.
Weitere Informationen
Informationen zum Ausführen von IIS oder IIS Express in Visual Studio finden Sie in den folgenden Ressourcen:
- IIS Express Overview on the IIS.net site.
- Einführung in IIS Express auf Scott Guthries Blog.
- Webserver in Visual Studio für ASP.NET Webprojekte.
- Kernunterschiede zwischen IIS und dem ASP.NET Development Server auf der ASP.NET-Website.