Ich weiß, dass dies eine sehr grundlegende Frage ist. Wenn jemand mich belustigen und mir sagen könnte, wie er damit umgehen würde, wäre ich sehr dankbar.
Ich habe mich dazu entschlossen, dies zu posten, da ich SynchToy installieren werde, um das unten stehende Problem zu beheben. Ich fühle mich etwas unprofessionell, wenn ich ein "Spielzeug" verwende, aber ich kann mir keinen besseren Weg vorstellen.
Wenn ich mich in einer solchen Situation befinde, fehlt mir oft eine schmerzlich offensichtliche Methode, um Dinge zu erledigen - das liegt daran, dass ich der einzige Entwickler im Unternehmen bin.
- ASP.NET-Webanwendung, die auf meinem Computer bei der Arbeit entwickelt wurde
- Lösung hat 2 Projekte:
- Website (Dateien)
- WebsiteLib (C # / dll)
- Verwenden eines Git-Repository
- Bereitgestellt auf einem GoGrid 2008R2-Webserver
Einsatz:
- Nehmen Sie Codeänderungen vor.
- Push to Git.
- Remote Desktop zum Server.
- Zieh von Git.
- Überschreiben Sie die Live-Dateien per Drag & Drop mit dem Windows Explorer.
In Schritt 5 lösche ich alle Dateien aus dem Stammverzeichnis der Website. Dies kann keine gute Sache sein. Deshalb werde ich SynchToy installieren ...
UPDATE: DANKE für alle nützlichen Antworten. Ich kann nicht auswählen, welche Antwort als Antwort markiert werden soll - zwischen der Verwendung einer Webbereitstellung - es sieht so aus, als hätte ich mehrere nützliche Vorschläge:
- Web Project = ganze Site in einer einzigen DLL zusammengefasst - Nachteil für mich ist, dass ich keine einfachen Aktualisierungen vornehmen kann. Als Einzelentwickler in einem Unternehmen mit 50 Mitarbeitern ist dies manchmal einfacher.
- Direkt von SCM in das Stammverzeichnis der Website gezogen - ich habe dies ursprünglich nicht aus der Angst heraus getan, dass mein verstecktes SCM-Verzeichnis entlarvt wird, aber die Antworten hier haben mir geholfen, darüber hinwegzukommen (obwohl ich immer noch nicht gerne eines habe) noch etwas zu vergessen, um sicherzustellen, dass es im Laufe der Zeit immer noch wahr ist)
- Die Verwendung einer Webfarm und die systematische Bereitstellung auf Knoten - dies ist die ideale Lösung für Ausfallzeiten ohne Ausfallzeiten. Dies ist mir wichtig, da die Site im Wesentlichen eine Echtzeit-Einnahmequelle für mein Unternehmen darstellt. Ich kann sie nur schwer davon überzeugen Verdoppeln Sie jedoch die Kosten für die Server.
-> Schließlich ist die Durchsetzung des Grundsatzes, dass es für die Site eine Bereitstellung mit nur einem Klick geben muss, wahrscheinlich das Nützlichste, was ich aus den Antworten herausbekommen habe.
UPDATE 2: Ich dachte, ich komme darauf zurück und aktualisiere mit der tatsächlichen Lösung, die seit vielen Monaten besteht und perfekt funktioniert (für meine einzelne Webserver-Lösung).
Der Prozess, den ich benutze, ist:
- Nehmen Sie Codeänderungen vor
- Push to Git
- Remote Desktop zum Server
- Zieh von Git
Führen Sie das folgende Stapelskript aus:
cd C: \ Benutzer \ Administrator
% systemroot% \ system32 \ inetsrv \ appcmd.exe stop site "/site.name:Default Web Site"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe start site "/site.name:Default Web Site"
Wie Sie sehen, wird die Site dadurch heruntergefahren. Mithilfe von Robocopy werden die geänderten Dateien auf intelligente Weise kopiert und die Site anschließend wieder hochgefahren. Es dauert normalerweise weniger als 2 Sekunden. Da der maximale Datenverkehr auf dieser Site ungefähr 2 Anfragen pro Sekunde beträgt, sind fehlende 4 Anfragen pro Site-Aktualisierung akzeptabel.
Seitdem ich Git besser beherrsche, habe ich festgestellt, dass die ersten vier Schritte als "manueller Prozess" auch akzeptabel sind, obwohl ich mir sicher sein kann, dass ich das Ganze mit einem Klick rollen kann, wenn ich möchte.
Die Dokumentation zu AppCmd.exe finden Sie hier . Die Dokumentation für Robocopy finden Sie hier .