Je sais que c'est une question très fondamentale. Si quelqu'un pouvait m'humourer et me dire comment il allait gérer ça, je serais reconnaissant.
J'ai décidé de poster ceci parce que je suis sur le point d'installer SynchToy pour remédier au problème ci-dessous, et je me sens un peu peu professionnel en utilisant un "Toy" mais je ne peux pas penser à une meilleure façon.
Plusieurs fois, je trouve que lorsque je suis dans cette situation, il me manque une manière douloureusement évidente de faire les choses - cela vient du fait d'être le seul développeur de l'entreprise.
- Application web ASP.NET développée sur mon ordinateur au travail
- La solution a 2 projets:
- Site Web (fichiers)
- WebsiteLib (C # / dll)
- Utiliser un référentiel Git
- Déployé sur un serveur Web GoGrid 2008R2
Déploiement:
- Apportez des modifications au code.
- Poussez vers Git.
- Bureau à distance au serveur.
- Tirez de Git.
- Remplacez les fichiers en direct par glisser / déposer avec l'explorateur Windows.
À l'étape 5, je supprime tous les fichiers de la racine du site Web .. cela ne peut pas être une bonne chose à faire. C'est pourquoi je suis sur le point d'installer SynchToy ...
MISE À JOUR: MERCI pour toutes les réponses utiles. Je ne peux pas choisir laquelle répondre - entre l'utilisation d'un déploiement Web - il semble que j'ai plusieurs suggestions utiles:
- Projet Web = site entier emballé dans une seule DLL - inconvénient pour moi, je ne peux pas pousser les mises à jour simples - étant un développeur seul dans une entreprise de 50, cela reste quelque chose de plus simple parfois.
- Passer directement de SCM à la racine Web du site - je ne l'ai pas fait à l'origine de peur que mon répertoire caché SCM finisse par être exposé, mais les réponses ici m'ont aidé à surmonter cela (bien que je n'aime toujours pas en avoir un) plus de soucis d’oublier de s’assurer que cela est toujours vrai au fil du temps)
- Utiliser une batterie de serveurs Web et déployer systématiquement sur des nœuds - c'est la solution idéale pour zéro temps d'arrêt, qui est en fait quelque chose qui m'importe car le site est essentiellement une source de revenus en temps réel pour mon entreprise - je pourrais avoir du mal à les convaincre de doubler le coût des serveurs.
-> enfin, le renforcement du principe de base selon lequel il doit y avoir un déploiement en un seul clic pour le site OU AILLEURS IL Y A QUELQUE CHOSE DE MAL est probablement la chose la plus utile que j'ai tirée des réponses.
MISE À JOUR 2: Je pensais y revenir et mettre à jour la solution réelle qui est en place depuis plusieurs mois maintenant et qui fonctionne parfaitement (pour ma solution de serveur Web unique).
Le processus que j'utilise est:
- Apportez des modifications au code
- Push to Git
- Bureau à distance au serveur
- Tirer de Git
Exécutez le script de commandes suivant:
cd C: \ Users \ Administrateur
% systemroot% \ system32 \ inetsrv \ appcmd.exe site d'arrêt "/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 site de démarrage "/site.name:Default Web Site"
Comme vous pouvez le voir, cela réduit le site, utilise robocopy pour copier intelligemment les fichiers qui ont été modifiés, puis fait remonter le site. Il s'exécute généralement en moins de 2 secondes. Étant donné que le trafic de pointe sur ce site est d'environ 2 demandes par seconde, il manque 4 demandes par mise à jour de site.
Depuis que je suis devenu plus compétent avec Git, j'ai trouvé que les quatre premières étapes ci-dessus étant un "processus manuel" sont également acceptables, bien que je suis sûr que je pourrais rouler le tout en un seul clic si je le voulais.
La documentation d'AppCmd.exe est ici . La documentation de Robocopy est ici .