MattB schlug es aus dem Wasser. +1 Ich werde mit mehr Details antworten, aber ich werde nicht versuchen, seine Punkte zu sammeln. Ich werde hinzufügen, was er sagte.
Ich habe ein ähnliches Setup wie er es beschrieben hat und es funktioniert großartig. ARR ist der richtige Weg, auch auf einem einzelnen Server.
Ein paar Dinge möchte ich jedoch hinzufügen.
Erstellen Sie die beiden Sites, wie von Matt empfohlen. Nennen Sie sie so etwas wie yoursite.com01 und yoursite.com02.
Erstellen Sie zwei URL-Rewrite-Regeln. Eine für www.yourdomain.com und eine weitere für staging.yourdomain.com. Verwenden Sie für die Produktion {HTTP_HOST} mit einem Wert von (^ www.ihredomain.com $) | (yourIP). (oder welche Bindung Sie auch bevorzugen) Verwenden Sie zum Staging {HTTP_HOST} mit dem Wert (^ staging.yourdomain.com $). Rufen Sie die Regeln yoursite.com und staging.yoursite.com auf.
Binden Sie Rule = yoursite.com an site = yoursite.com01 und rule = staging.yoursite.com an site = yoursite.com02.
Richten Sie FTP auf staging.yoursite.com ein.
Der Produktionsdatenverkehr wird jetzt an Rule = staging.yoursite.com und Site = yoursite.com01 gesendet. Ins Gegenteil taumeln.
Sie können zu jedem Zeitpunkt zum Staging bereitstellen, testen, vorab starten, von anderen Personen testen lassen usw. Machen Sie dies tagsüber, es spielt keine Rolle. Stellen Sie jedes Mal auf demselben FTP-Konto bereit. Funktioniert hervorragend mit Build-Servern.
Nehmen Sie dann einfach drei Änderungen vor, wenn Sie bereit sind, live zu gehen: - Verschieben Sie die FTP-Bindung von yoursite.com02 auf yoursite.com01. - Ändern Sie die URL-Umschreiberegel yoursite.com so, dass sie auf yoursite.com02 verweist. yoursite.com zeigt auf yoursite.com01
Jetzt haben Sie keine Ausfallzeiten, sofortiges Umschalten und sofortige Rollback-Funktionalität!
Ihr einziger zu berücksichtigender Punkt ist der Sitzungsstatus außerhalb des Prozesses. Stellen Sie sicher, dass Ihr Statusserver beide Site-IDs akzeptiert, damit Sie den Sitzungsstatus während des Austauschs nicht verlieren.
Beachten Sie auch, dass dies nur Web ist und keine Datenbank.
Verwenden Sie für die Skripterstellung den Konfigurationseditor. Nehmen Sie die gewünschten Änderungen vor und klicken Sie dann auf "Skript generieren". Sie erhalten C # -, appcmd- oder AHAdmin-Code.
Ich habe dies für ein paar Monate mit einem Webseiten-Front-End eingerichtet, um Instanzen auszutauschen, und ich schaue nie zurück. Dadurch werden Bereitstellungen im Vergleich zu herkömmlichen Bereitstellungen so erfrischend.