So che questa è una domanda molto semplice. Se qualcuno potesse darmi umorismo e dirmi come lo manterrebbero, sarei grato.
Ho deciso di postare questo perché sto per installare SynchToy per risolvere il problema qui sotto, e mi sento un po 'poco professionale usando un "Toy" ma non riesco a pensare a un modo migliore.
Molte volte trovo quando sono in questa situazione, mi manca qualche modo dolorosamente ovvio di fare le cose - questo deriva dall'essere l'unico sviluppatore della compagnia.
- Applicazione Web ASP.NET sviluppata sul mio computer al lavoro
- La soluzione ha 2 progetti:
- Sito web (file)
- WebsiteLib (C # / dll)
- Utilizzo di un repository Git
- Distribuito su un server Web GoRail 2008R2
Distribuzione:
- Apporta modifiche al codice.
- Invia a Git.
- Desktop remoto sul server.
- Estrazione da Git.
- Sovrascrivi i file live trascinandoli / rilasciandoli con Windows Explorer.
Nel passaggio 5 elimino tutti i file dalla radice del sito Web. Questo non può essere una buona cosa da fare. Ecco perché sto per installare SynchToy ...
UPDATE: GRAZIE per tutte le risposte utili. Non riesco a scegliere quale contrassegnare la risposta - tra l'utilizzo di una distribuzione Web - sembra che abbia diversi consigli utili:
- Progetto Web = intero sito racchiuso in una singola DLL - lato negativo per io non posso spingere aggiornamenti semplici - essendo uno sviluppatore solitario in un'azienda di 50, questo rimane qualcosa che è più semplice, a volte.
- Tirando direttamente da SCM nella web root del sito - originariamente non l'ho fatto per paura che la mia directory nascosta di SCM potesse finire essere esposto, ma le risposte qui mi hanno aiutato a superare questo (anche se non mi piace ancora avere una cosa in più di cui preoccuparsi dimenticando di essere sicuro è ancora vero nel tempo)
- Uso di una web farm e distribuzione sistematica ai nodi - questo è la soluzione ideale per zero tempi di inattività, che in realtà è qualcosa che io cura in quanto il sito è essenzialmente una fonte di entrate in tempo reale per la mia compagnia, potrei avere difficoltà a convincerli a raddoppiare il costo dei server però.
- > infine, la re-applicazione del principio di base che ci deve essere una distribuzione con un solo clic per il sito O ALTRO QUALCOSA DI QUALCOSA DI ERRORE è probabilmente la cosa più utile che ho ottenuto dalle risposte.
AGGIORNAMENTO 2: Ho pensato di tornare su questo punto e di aggiornarlo con la soluzione effettiva che è stata implementata per molti mesi e funziona perfettamente (per la mia soluzione per server Web singola).
Il processo che uso è:
- Apporta modifiche al codice
- Invia a Git
- Desktop remoto sul server
- Estrazione da Git
-
Esegui il seguente script batch:
cd C: \ Users \ Administrator
% systemroot% \ system32 \ inetsrv \ appcmd.exe fermata sito "/site.name:Default sito web"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe sito di avvio "/site.name:Default sito Web"
Come puoi vedere, il sito è inattivo, usa robocopy per copiare in modo intelligente i file che sono stati modificati, quindi ripristina il sito. Funziona in genere in meno di 2 secondi. Poiché il traffico di punta su questo sito è di circa 2 richieste al secondo, mancano 4 richieste per aggiornamento del sito.
Sine, sono diventato più abile con Git. Ho trovato che anche i primi quattro passaggi sopra descritti come "processo manuale" sono accettabili, anche se sono sicuro di poter eseguire il tutto con un solo clic se volessi a.
La documentazione di AppCmd.exe è qui . La documentazione di Robocopy è qui .