So che questa è una domanda molto semplice. Se qualcuno potesse umorizzarmi e dirmi come avrebbero gestito questo, sarei grato.
Ho deciso di pubblicare questo perché sto per installare SynchToy per risolvere il problema di seguito, e mi sento un po 'poco professionale usando un "Giocattolo" ma non riesco a pensare a un modo migliore.
Molte volte trovo che quando mi trovo in questa situazione, mi manca un modo dolorosamente ovvio di fare le cose - questo deriva dall'essere l'unico sviluppatore dell'azienda.
- Applicazione web ASP.NET sviluppata sul mio computer al lavoro
- La soluzione ha 2 progetti:
- Sito Web (file)
- WebsiteLib (C # / dll)
- Utilizzando un repository Git
- Distribuito su un server Web GoGrid 2008R2
Distribuzione:
- Apporta modifiche al codice.
- Push to Git.
- Desktop remoto su server.
- Tirare da Git.
- Sovrascrivi i file live trascinandoli con Windows Explorer.
Nel passaggio 5 elimino tutti i file dalla radice del sito Web .. questa non può essere una buona cosa da fare. Ecco perché sto per installare SynchToy ...
AGGIORNAMENTO: GRAZIE per tutte le risposte utili. Non riesco a scegliere quale contrassegnare la risposta - tra l'utilizzo di una distribuzione Web - sembra che io abbia diversi suggerimenti utili:
- Progetto Web = intero sito impacchettato in una singola DLL - aspetto negativo per me non posso inviare semplici aggiornamenti - essendo uno sviluppatore solitario in una società di 50, questo a volte rimane qualcosa di più semplice.
- Passando direttamente da SCM alla radice web del sito - inizialmente non lo facevo per paura che la mia directory nascosta SCM potesse finire per essere esposta, ma le risposte qui mi hanno aiutato a superarlo (anche se non mi piace ancora averne uno più cosa di cui preoccuparsi per dimenticare di assicurarsi che sia ancora vero nel tempo)
- Usando una web farm e distribuendo sistematicamente ai nodi - questa è la soluzione ideale per zero tempi di inattività, che in realtà è qualcosa di cui mi preoccupo poiché il sito è essenzialmente una fonte di entrate in tempo reale per la mia azienda - potrei avere difficoltà a convincerli a il doppio del costo dei server però.
-> infine, la re-applicazione del principio base che deve essere implementata con un solo clic per il sito O ALTRO QUALCOSA DI SBAGLIATO è probabilmente la cosa più utile che ho ottenuto dalle risposte.
AGGIORNAMENTO 2: Ho pensato di tornare su questo e aggiornare con la soluzione reale che è stata messa in atto per molti mesi e funziona perfettamente (per la mia soluzione con un singolo server Web).
Il processo che utilizzo è:
- Apporta modifiche al codice
- Push to Git
- Desktop remoto su server
- Tirare da Git
Esegui il seguente script batch:
cd C: \ Users \ 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 avviare il sito "/site.name: sito Web predefinito"
Come puoi vedere, questo fa cadere il sito, usa robocopy per copiare in modo intelligente i file che sono stati modificati, quindi il backup del sito. In genere funziona in meno di 2 secondi. Poiché il traffico di picco su questo sito è di circa 2 richieste al secondo, sono accettabili 4 richieste per aggiornamento del sito.
Sine, sono diventato più abile con Git, ho scoperto che anche i primi quattro passaggi precedenti sono un "processo manuale", anche se sono sicuro che potrei fare tutto in un solo clic, se lo volessi.
La documentazione per AppCmd.exe è qui . La documentazione per Robocopy è qui .