Bereitstellen einer Website mithilfe eines FTP-Clients (C#)
von Scott Mitchell
Die einfachste Möglichkeit zum Bereitstellen einer ASP.NET Anwendung besteht darin, die erforderlichen Dateien manuell aus der Entwicklungsumgebung in die Produktionsumgebung zu kopieren. In diesem Tutorial wird gezeigt, wie Sie einen FTP-Client verwenden, um die Dateien von Ihrem Desktop an den Webhostanbieter zu übertragen.
Einführung
Im vorherigen Tutorial wurde eine einfache Buchüberprüfung ASP.NET Webanwendung eingeführt, die aus einer Handvoll ASP.NET Seiten, einer master Seite, einer benutzerdefinierten BasisklassePage
, einer Reihe von Bildern und drei CSS-Stylesheets besteht. Wir sind jetzt bereit, diese Anwendung bei einem Webhostanbieter bereitzustellen, an dem die Anwendung für jeden zugänglich ist, der eine Verbindung mit dem Internet hat!
Aus unseren Diskussionen im Tutorial Bestimmen, welche Dateien bereitgestellt werden müssen , wissen wir, welche Dateien in den Webhostanbieter kopiert werden müssen. (Denken Sie daran, dass die kopierten Dateien davon abhängen, ob Ihre Anwendung explizit oder automatisch kompiliert wird.) Aber wie können wir die Dateien von der Entwicklungsumgebung (unserem Desktop) bis zur Produktionsumgebung (dem vom Webhostanbieter verwalteten Webserver) abrufen? Das F ile T ransfer P rotocol (FTP) ist ein häufig verwendetes Protokoll zum Kopieren von Dateien von einem Computer auf einen anderen über ein Netzwerk. Eine weitere Option ist FrontPage-Servererweiterungen (FrontPage Server Extensions, FPSE). Dieses Tutorial konzentriert sich auf die Verwendung eigenständiger FTP-Clientsoftware zum Bereitstellen der erforderlichen Dateien aus der Entwicklungsumgebung in der Produktionsumgebung.
Hinweis
Visual Studio enthält Tools zum Veröffentlichen von Websites über FTP. Diese Tools sowie ein Blick auf Tools, die FPSE verwenden, werden im nächsten Tutorial behandelt.
Zum Kopieren der Dateien mithilfe von FTP benötigen wir einen FTP-Client in der Entwicklungsumgebung. Ein FTP-Client ist eine Anwendung, die zum Kopieren von Dateien von dem Computer entwickelt wurde, auf dem sie installiert ist, auf einem Computer, auf dem ein FTP-Server ausgeführt wird. (Wenn Ihr Webhostanbieter dateiübertragungen per FTP unterstützt, wie die meisten, wird ein FTP-Server auf seinen Webservern ausgeführt.) Es stehen eine Reihe von FTP-Clientanwendungen zur Verfügung. Ihr Webbrowser kann sogar als FTP-Client doppelt ausgeführt werden. Mein lieblings FTP-Client, und der, den ich für dieses Tutorial verwenden werde, ist FileZilla, ein kostenloser Open-Source-FTP-Client, der für Windows, Linux und Macs verfügbar ist. Jeder FTP-Client funktioniert jedoch, also können Sie den Client verwenden, mit dem Sie am besten vertraut sind.
Wenn Sie mitarbeiten, müssen Sie ein Konto bei einem Webhostanbieter erstellen, bevor Sie dieses Oder nachfolgende Tutorial abschließen können. Wie im vorherigen Tutorial erwähnt, gibt es einen Gaggle von Webhostanbietern mit einem breiten Spektrum an Preisen, Features und Servicequalität. Für diese Tutorialreihe verwende ich Discount-ASP.NET als meinen Webhostanbieter, aber Sie können jedem Webhostanbieter folgen, solange diese die ASP.NET Version unterstützen, in der Ihre Website entwickelt wurde. (Diese Tutorials wurden mit ASP.NET 3.5 erstellt.) Da wir die Dateien in diesem Tutorial und in zukunft mithilfe von FTP auf den Webhostanbieter kopieren werden, ist es zwingend erforderlich, dass Ihr Webhostanbieter den FTP-Zugriff auf seine Webserver unterstützt. Praktisch alle Webhostanbieter bieten dieses Feature an, aber Sie sollten es vor der Registrierung noch einmal überprüfen.
Bereitstellen des Book Review-Webanwendungsprojekts
Beachten Sie, dass es zwei Versionen der Book Review-Webanwendung gibt: eine, die mithilfe des Webanwendungsprojektmodells (BookReviewsWAP) und die andere mithilfe des Websiteprojektmodells (BookReviewsWSP) implementiert wird. Der Projekttyp beeinflusst, ob die Website automatisch oder explizit kompiliert wird, und dieses Kompilierungsmodell legt fest, welche Dateien bereitgestellt werden müssen. Daher werden wir die Bereitstellung der Projekte BookReviewsWAP und BookReviewsWSP separat untersuchen, beginnend mit bookReviewsWAP. Nehmen Sie sich einen Moment Zeit, um diese beiden ASP.NET Anwendungen herunterzuladen, falls Sie dies noch nicht getan haben.
Starten Sie das Projekt BookReviewsWAP, indem Sie zum BookReviewsWAP
Ordner navigieren und auf die BookReviewsWAP.sln
Datei doppelklicken. Vor der Bereitstellung des Projekts ist es wichtig, es zu erstellen, um sicherzustellen, dass alle Änderungen am Quellcode in der kompilierten Assembly enthalten sind. Um das Projekt zu erstellen, wechseln Sie zum Menü Erstellen, und wählen Sie die Menüoption Build BookReviewsWAP aus. Dadurch wird der Quellcode im Projekt in eine einzelne Assembly kompiliert, BookReviewsWAP.dll
die im Bin
Ordner abgelegt wird.
Wir sind jetzt bereit, die erforderlichen Dateien bereitzustellen! Starten Sie Ihren FTP-Client, und stellen Sie eine Verbindung mit dem Webserver ihres Webhostanbieters her. (Wenn Sie sich bei einem Webhostingunternehmen registrieren, erhalten Sie per E-Mail Informationen zum Herstellen einer Verbindung mit dem FTP-Server. Dies umfasst die Adresse für den FTP-Server sowie einen Benutzernamen und ein Kennwort.)
Kopieren Sie die folgenden Dateien von Ihrem Desktop in den Stammwebsiteordner Ihres Webhostanbieters. Wenn Sie beim Webhostanbieter ftp auf den Webserver zugreifen, befinden Sie sich wahrscheinlich im Stammwebsiteverzeichnis. Einige Webhostanbieter verfügen jedoch über einen Unterordner namens www
oder wwwroot
, der als Stammordner für Ihre Websitedateien dient. Schließlich müssen Sie beim FTPing der Dateien möglicherweise die entsprechende Ordnerstruktur in der Produktionsumgebung erstellen – den Bin
Ordner, den Fiction
Ordner, den Images
Ordner usw.
~/Default.aspx
~/About.aspx
~/Site.master
~/Web.config
~/Web.sitemap
- Der vollständige Inhalt des Ordners
Styles
- Der vollständige Inhalt des Ordners
Images
(und seines Unterordners,BookCovers
) ~/Fiction/Default.aspx
~/Fiction/Blaze.aspx
~/Tech/Default.aspx
~/Tech/CYOW.aspx
~/Tech/TYASP35.aspx
~/Bin/BookReviewsWAP.dll
Abbildung 1 zeigt FileZilla, nachdem die erforderlichen Dateien kopiert wurden. FileZilla zeigt die Dateien auf dem lokalen Computer auf der linken Seite und die Dateien auf dem Remotecomputer auf der rechten Seite an. Wie Abbildung 1 zeigt, befinden sich die ASP.NET Quellcodedateien, z About.aspx.cs
. B. , auf dem lokalen Computer (der Entwicklungsumgebung), wurden aber nicht in den Webhostanbieter (die Produktionsumgebung) kopiert, da Codedateien nicht bereitgestellt werden müssen, wenn die explizite Kompilierung verwendet wird.
Hinweis
Die Quellcodedateien auf dem Produktionsserver sind nicht beschädigt, da sie ignoriert werden. ASP.NET verbietet http-Anforderungen an Quellcodedateien standardmäßig, sodass selbst wenn die Quellcodedateien auf dem Produktionsserver vorhanden sind, sie für Besucher Ihrer Website nicht zugänglich sind. (Das heißt, wenn ein Benutzer versucht zu besuchen http://www.yoursite.com/Default.aspx.cs
, erhält er eine Fehlerseite, die erklärt, dass diese Dateitypen .cs
- Dateien - verboten sind.)
Abbildung 1: Verwenden eines FTP-Clients zum Kopieren der erforderlichen Dateien von Ihrem Desktop auf den Webserver beim Webhostanbieter (Klicken Sie hier, um das bild in voller Größe anzuzeigen)
Nehmen Sie sich nach der Bereitstellung Ihrer Website einen Moment Zeit, um die Website zu testen. Wenn Sie einen Domänennamen erworben und die DNS-Einstellungen ordnungsgemäß konfiguriert haben, können Sie Ihre Website besuchen, indem Sie Ihren Domänennamen eingeben. Alternativ sollte Ihr Webhostanbieter Ihnen eine URL für Ihre Website bereitgestellt haben, die etwa wie Kontoname aussieht. webhostprovider.com oder webhostprovider.com/accountname. Beispielsweise lautet die URL für mein Konto für rabatt ASP.NET: http://httpruntime.web703.discountasp.net
.
Abbildung 2 zeigt die bereitgestellte Website "Buchbewertungen". Beachten Sie, dass ich es auf Rabatt-ASP. NET-Server unter http://httpruntime.web703.discountasp.net
. Zu diesem Zeitpunkt konnte jeder, der eine Verbindung zum Internet hatte, meine Website anzeigen! Wie erwartet, sieht und verhält sich die Website genauso wie beim Testen in der Entwicklungsumgebung.
Hinweis
Wenn beim Anzeigen Ihrer Anwendung eine Fehlermeldung angezeigt wird, müssen Sie einen Moment zeit nehmen, um sicherzustellen, dass Sie den richtigen Satz von Dateien bereitgestellt haben. Überprüfen Sie als Nächstes die Fehlermeldung, um zu sehen, ob sie Hinweise auf das Problem enthält. Anschließend können Sie sich an den Helpdesk Ihres Webhostunternehmens wenden oder Ihre Frage an das entsprechende Forum in den ASP.NET Foren stellen.
Abbildung 2: Die Website "Buchbewertungen" ist jetzt für alle Benutzer mit einer Internetverbindung zugänglich (Klicken Sie, um das bild in voller Größe anzuzeigen)
Bereitstellen des Websiteprojekts für die Buchüberprüfung
Beim Bereitstellen einer ASP.NET-Anwendung, die die automatische Kompilierung verwendet, z. B. das BookReviewsWSP-Websiteprojekt, befindet sich keine kompilierte Assembly im Bin
Ordner. Daher müssen die Quellcodedateien der Webanwendung in der Produktionsumgebung bereitgestellt werden. Lassen Sie uns diesen Prozess durchgehen.
Wie beim Webanwendungsprojekt ist es ratsam, zuerst die Anwendung zu erstellen, bevor Sie sie bereitstellen. Beim Erstellen eines Websiteprojekts wird keine Assembly erstellt, es wird jedoch auf Kompilierzeitfehler auf der Seite überprüft. Besser, diese Fehler jetzt zu finden, anstatt sie von einem Besucher Ihrer Website für Sie zu entdecken!
Nachdem Sie das Projekt erfolgreich erstellt haben, kopieren Sie mit Ihrem FTP-Client die folgenden Dateien in den Stammwebsiteordner Ihres Webhostanbieters. Möglicherweise müssen Sie die entsprechende Ordnerstruktur in der Produktionsumgebung erstellen.
Hinweis
Wenn Sie das BookReviewsWAP-Projekt bereits bereitgestellt haben, aber dennoch versuchen möchten, das BookReviewsWSP-Projekt bereitzustellen, löschen Sie zunächst alle Dateien auf dem Webserver, die beim Bereitstellen von BookReviewsWAP hochgeladen wurden, und stellen Sie dann die Dateien für BookReviewsWSP bereit.
~/Default.aspx
~/Default.aspx.cs
~/About.aspx
~/About.aspx.cs
~/Site.master
~/Site.master.cs
~/Web.config
~/Web.sitemap
- Der vollständige Inhalt des Ordners
Styles
- Der vollständige Inhalt des Ordners
Images
(und seines Unterordners,BookCovers
) ~/App_Code/BasePage.cs
~/Fiction/Default.aspx
~/Fiction/Default.aspx.cs
~/Fiction/Blaze.aspx
~/Fiction/Blaze.aspx.cs
~/Tech/Default.aspx
~/Tech/Default.aspx.cs
~/Tech/CYOW.aspx
~/Tech/CYOW.aspx.cs
~/Tech/TYASP35.aspx
~/Tech/TYASP35.aspx.cs
Abbildung 3 zeigt FileZilla nach dem Kopieren der erforderlichen Dateien. Wie Sie sehen, sind die ASP.NET Quellcodedateien, z About.aspx.cs
. B. , sowohl auf dem lokalen Computer (der Entwicklungsumgebung) als auch auf dem Webhostanbieter (der Produktionsumgebung) vorhanden, da Codedateien bei der automatischen Kompilierung bereitgestellt werden müssen.
Abbildung 3: Verwenden eines FTP-Clients, um die erforderlichen Dateien vom Desktop auf den Webserver beim Webhostanbieter zu kopieren (Klicken Sie hier, um das bild in voller Größe anzuzeigen)
Die Benutzerfreundlichkeit wird vom Kompilierungsmodell der Anwendung nicht beeinflusst. Die gleichen ASP.NET Seiten sind zugänglich, und sie sehen und verhalten sich gleich, unabhängig davon, ob die Website mithilfe des Webanwendungsprojektmodells oder des Websiteprojektmodells erstellt wurde.
Aktualisieren einer Webanwendung in der Produktion
Die Entwicklung und Bereitstellung von Webanwendungen sind kein einmaliger Prozess. Beispielsweise habe ich beim Erstellen der Book Review-Website die verschiedenen Seiten erstellt und den zugehörigen Code auf meinem PC (der Entwicklungsumgebung) geschrieben. Nachdem ich einen bestimmten stabilen Zustand erreicht hatte, habe ich meine Anwendung bereitgestellt, damit andere die Website besuchen und meine Bewertungen lesen konnten. Die Bereitstellung markiert jedoch nicht das Ende meiner Entwicklung auf dieser Website. Ich kann weitere Buchbewertungen hinzufügen oder neue Features implementieren, z. B. dass meine Besucher Bücher bewerten oder ihre eigenen Kommentare hinterlassen können. Solche Verbesserungen würden in der Entwicklungsumgebung entwickelt und müssten nach Abschluss bereitgestellt werden. Entwicklung und Bereitstellung sind daher zyklisch. Sie entwickeln eine Anwendung und stellen sie dann bereit. Während der Website live und in der Produktion werden neue Features hinzugefügt und Fehler im Laufe der Zeit behoben, was eine erneute Bereitstellung der Anwendung erfordert. Und so weiter und so weiter.
Wie Sie vielleicht erwarten, müssen Sie beim erneuten Bereitstellen einer Webanwendung nur neue und geänderte Dateien kopieren. Es ist nicht erforderlich, unveränderte Seiten oder server- oder clientseitige Supportdateien erneut bereitzustellen (obwohl dies keinen Schaden verursacht).
Hinweis
Beachten Sie bei der Verwendung der expliziten Kompilierung, dass Sie jedes Mal, wenn Sie dem Projekt eine neue ASP.NET Seite hinzufügen oder codebezogene Änderungen vornehmen, Ihr Projekt neu erstellen müssen, wodurch die Assembly im Bin
Ordner aktualisiert wird. Folglich müssen Sie diese aktualisierte Assembly in die Produktion kopieren, wenn Sie eine Webanwendung in der Produktion aktualisieren (zusammen mit den anderen neuen und aktualisierten Inhalten).
Beachten Sie außerdem, dass änderungen an oder Web.config
an den Dateien im Bin
Verzeichnis den Anwendungspool der Website beendet und neu gestartet werden. Wenn Ihr Sitzungszustand im InProc
Modus (Standard) gespeichert wird, verlieren die Besucher Ihrer Website ihren Sitzungszustand, wenn diese Schlüsseldateien geändert werden. Um diesen Fallstrick zu vermeiden, sollten Sie die Sitzung mit dem StateServer
- oder SQLServer
-Modus speichern. Weitere Informationen zu diesem Thema finden Sie unter Sitzungszustandsmodi.
Denken Sie schließlich daran, dass die erneute Bereitstellung einer Anwendung je nach Anzahl und Größe der Dateien, die in die Produktionsumgebung kopiert werden müssen, zwischen einigen Sekunden und mehreren Minuten dauern kann. Während dieser Zeit können beim Besuch Ihrer Website Fehler oder ungewöhnliches Verhalten auftreten. Sie können Ihre gesamte Anwendung "deaktivieren", indem Sie eine Seite namens App_Offline.htm
zum Stammverzeichnis Ihrer Anwendung hinzufügen, die Ihren Benutzern erklärt, dass die Website zu Wartungszwecken (oder was auch immer) ausgefallen ist und in Kürze wieder verfügbar ist. Wenn die App_Offline.htm
Datei vorhanden ist, leitet die ASP.NET Runtime alle eingehenden Anforderungen an diese Seite um.
Zusammenfassung
Die Bereitstellung einer Webanwendung umfasst das Kopieren der erforderlichen Dateien aus der Entwicklungsumgebung in die Produktionsumgebung. Die gängigste Methode, mit der Dateien über ein Netzwerk übertragen werden, ist das File Transfer Protocol (FTP), und die meisten Webhostanbieter unterstützen FTP-Zugriff auf ihre Webserver. In diesem Tutorial haben wir erfahren, wie Sie einen FTP-Client verwenden, um die erforderlichen Dateien auf dem Webserver bereitzustellen. Nach der Bereitstellung kann die Website von jedem besucht werden, der eine Verbindung mit dem Internet hat!
Viel Spaß beim Programmieren!
Weitere Informationen
Weitere Informationen zu den in diesem Tutorial behandelten Themen finden Sie in den folgenden Ressourcen: