2009-02-23 16 views
1

D'abord, la situation antérieure: Nous avons ce projet avec un script de génération en un clic. Il est bricolé avec TFS Deployer + PowerShell + Script VB. TFS Deployer se trouve sur la machine de production, copie les nouveaux fichiers du site Web dans un nouveau répertoire, puis appelle un script VB qui modifie le site Web IIS dans le nouveau répertoire. Maintenant, je déplace l'équipe loin de l'horreur qui est TFS/MSBuild. J'ai un agent de construction TeamCity sur un serveur de construction dédié. Un script NANT simple déploie les artefacts de construction du serveur de génération vers le serveur de production via un dossier partagé. Simple, rapide et efficace.Modification d'un répertoire de site Web IIS6 à distance

Cependant, je n'ai pas trouvé un moyen a) pour exécuter le script VB à distance b) mettre à jour le site IIS à distance avec un mécanisme différent (par programmation dans la construction en 1 clic). Windows Server 2003/IIS6. Des idées? Mise à jour: J'ai résolu cela en créant un autre vbs qui appelait à distance les anciens vbs que j'avais à travers WMI. Merci tout le monde!

Répondre

1

Si je devais me diriger dans n'importe quelle direction, je considérerais la mise en place d'un script WMI pour faire le travail et ensuite le configurer sur le serveur en question. Je devrais penser à la façon de l'inclure facilement dans votre construction automatisée. Personnellement, je n'ai pas encore travaillé avec TeamCity, même si j'ai assisté à des séances sur son fonctionnement. WMI peut également exécuter le script et agir comme une sorte de frontend de service, ce qui vous permet de réutiliser ce que vous avez déjà dépensé.

1

Pourriez-vous modifier le fichier VBScript dans un fichier ASP sur un site Web différent sur le même serveur? Cela vous permettrait de l'appeler à distance.

1

Nous avons utilisé la tâche NAntContrib'smkiisdir pour créer/modifier un répertoire virtuel sur des machines distantes.

<mkiisdir iisserver="Staging" dirpath="c:\temp" vdirname="Temp" /> 

Cela devrait soit créer (si le vdir n'existe pas) ou modifier l'emplacement (si le vdir existe déjà).

Généralement, il semble que le moyen le plus propre de le faire est de supprimer d'abord le vdir avec la tâche deliisdir, suivi d'un create.

<deliisdir vdirname="Temp" failonerror="false" /> 
<mkiisdir dirpath="c:\temp" vdirname="Temp" accessread="true" accesswrite="false" accessscript="true" enabledirbrowsing="false" authntlm="true" authbasic="false" authanonymous="false" appcreate="Pooled" /> 

Bonne codification!