ASP.NET Web Deployment using Visual Studio: Deploying to Test
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 diesem Lernprogramm stellen Sie eine ASP.NET Webanwendung auf Ihrem lokalen Computer auf Internetinformationsserver (IIS) 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 überprüft und die Anwendung unter IIS ordnungsgemäß ausgeführt.
Stellen Sie Ihre Anwendung in einer Testumgebung bereit, die Ihrer Produktionsumgebung ähnelt.
Die Produktionsumgebung für diese Lernprogramme wird in Azure-App Service Web-Apps. 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 Lernprogramm "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
Wenn Sie iis auf Ihrem Entwicklungscomputer bereitstellen möchten, vergewissern Sie sich, 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> Programs>Programme und Features>Aktivieren oder Deaktivieren von Windows-Features.
Erweitern Sie Internetinformationsdienste, World Wide Web Services und Anwendungsentwicklungsfeatures.
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.
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. 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 "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 –i
Mit 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 aus dem Download Center herunter und installieren sie aus : Microsoft SQL Server 2017 Express Edition.
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 im Installations-Assistenten (Setup) unter Installieren von SQL Server.
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. Durch die Kombination werden Datenbankbeitritte zwischen ihnen vereinfacht.
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 ContosoUniversity
zu erstellen.
Der Server-Explorer zeigt die beiden neuen Datenbanken an.
Erstellen eines Grant-Skripts 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, die zur Laufzeit auf die Datenbank zugreifen, was in der Produktionsumgebung vorhanden ist. In einigen Szenarien möchten Sie möglicherweise einen Benutzer angeben, der nur über vollständige Berechtigungen für die Datenbankschemaaktualisierung für die Bereitstellung verfügt, und einen anderen Benutzer mit Berechtigungen zum Lesen und Schreiben von Daten angeben. Weitere Informationen finden Sie unter "Überprüfen der Änderungen der automatischen Web.config" für Code First-Migrationen weiter unten in diesem Lernprogramm.
Ausführen des Grant-Skripts in der Anwendungsdatenbank
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. Skripts können während Code First-Migrationen Bereitstellung nicht ausgeführt werden. Dies ist die Bereitstellung der Anwendungsdatenbank.You can't run scripts during Code First-Migrationen deployment, which is how you're deploying the application database. 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" die Option "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 Visual Studio mit nur einem Klick veröffentlichen.
- 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öffentlichungs-Assistent wird angezeigt.
Wählen Sie im Dropdownmenü "Methode veröffentlichen " die Option "Web Bereitstellen" aus.
Geben Sie für Server "localhost" ein.
Geben Sie für den Websitenamen die Standardwebsite/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 sie auf den Standardwert von Release festgelegt. In diesem Lernprogramm werden keine Debugbuilds bereitgestellt.
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 das Precompile während der Veröffentlichung, und entfernen Sie zusätzliche Dateien bei Zielkontrollkästchen deaktiviert.
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 weitere Dateien am Ziel entfernen auswählen, stellen Sie sicher, dass Sie das Vorschaufeature 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 beim Bereitstellen der Hauptwebsite weitere Dateien am Ziel entfernen auswählen, wird 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 erstbereitstellung möchten Sie die Datenbankdateien in nachfolgenden Bereitstellungen nicht mehr kopieren, sodass Sie auf der Registerkarte "Paket/Veröffentlichen" "Web" die Option "Ausschließen" App_Data auswählen. Wenn Sie die Option "Weitere Dateien am Ziel entfernen" ausgewählt haben, werden Ihre Datenbankdateien und der App_Data Ordner selbst beim nächsten Veröffentlichen gelöscht.
Konfigurieren der Bereitstellung 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=True
Der Bereitstellungsprozess fügt diesen Verbindungszeichenfolge in die bereitgestellte Web.config-Datei ein, da diese Verbindungszeichenfolge zur Laufzeit ausgewählt ist.
Sie können auch die Verbindungszeichenfolge aus dem Server-Explorer abrufen. Erweitern Sie im Server-Explorer Datenverbindungen, und wählen Sie die< Datenbank "machinename>\sqlexpress.aspnet-ContosoUniversity" aus, und kopieren Sie dann im Eigenschaftenfenster den Wert "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 "Ausführen" Code First-Migrationen anstelle eines Kontrollkästchens "Datenbank aktualisieren" erstellt. In diesem Lernprogramm verwenden Sie dieses Kontrollkästchen, um Code First-Migrationen Bereitstellung 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 diesem Fall, Gewusst wie eine Code First-Datenbank ohne Migrationen bereitstellen? in den häufig gestellten Fragen zur ASP.NET Webbereitstellung auf MSDN.
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=True
Der Bereitstellungsprozess fügt diesen Verbindungszeichenfolge in die bereitgestellte Web.config-Datei ein, da 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 "Ausführen" Code First-Migrationen (wird beim Starten der Anwendung ausgeführt) aus.
Diese Option bewirkt, dass der Bereitstellungsprozess die bereitgestellte Web.config-Datei so konfiguriert, dass der
MigrateDatabaseToLatestVersion
Initialisierer 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.
Erweitern Sie in Projektmappen-Explorer "Eigenschaften", "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 "Konfigurationstransformation hinzufügen" 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 "(Test)" nach der Überschrift "Contoso University" 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 Skripts für Code First-Migrationen Bereitstellung ausgeführt, sodass keine Vorschau für die Anwendungsdatenbank vorhanden 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 "Profilverbindung veröffentlichen" eingegeben haben, wird der Browser automatisch auf der Startseite der Contoso University geöffnet, 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 seeded 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 war nicht der Zeitpunkt, an dem Sie sich auf der Startseite befanden, da die Anwendung noch nicht versucht hat, 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 änderungen der automatischen 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, wo der Bereitstellungsprozess konfiguriert ist, Code First-Migrationen so konfiguriert ist, dass die Datenbank automatisch auf die neueste Version aktualisiert wird.
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 Anwendung die rolle db_owner Code First-Migrationen und db_datareader mit db_datawriter Rollen 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 Datenbankschemaaktualisierungsberechtigungen angibt. Deaktivieren Sie das Kontrollkästchen "Dieses Verbindungszeichenfolge zur Laufzeit verwenden". In der bereitgestellten Datei "Web.config" wird dies zum
DatabasePublish
Verbindungszeichenfolge.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 Lernprogramm führen Sie einen weiteren Test aus, der eine Bereitstellungsaufgabe findet, die noch nicht abgeschlossen wurde: Festlegen von Ordnerberechtigungen für 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.