Sol@rweb WeBlog

mardi 20 juin 2006

Installer et contrôler un service windows en vb.net

Voici un petit tutoriel en .net lié à une problématique rencontrée en stage par rapport aux Service Windows.

Le problème

Mon but était de créer un service windows pour une partie d'une application qui est un serveur en attente de réception ou d'envoi de fichier.

La création d'un service windows dans vb.net est simplissime, toutefois son installation semble nettement plus laborieuse lorsque l'on voit les différents tutoriaux sur le sujet.

ajouter un installeurEn effet une fois notre service prêt, on doit ajouter un installeur, en cliquant droit sur la partie "design" de notre service et en sélectionnant "ajouter un installeur". Une fois la configuration effectuée, on peut reconstruire la solution.

Et c'est à partir de ce point la que l'on nous propose seulement une solution en ligne de commande pour installer et désinstaller notre service.

On doit tout d'abord trouver le fichier installUtil.exe, qui est dans c:\windows\Microsoft.net\Framework\"numero de version" puis appeler notre service avec ce programme : installUtil.exe c:\.....\monService.exe.

Pour le désintaller c'est la même commande mais avec installUtil.exe /U

La solution

Et voici venu le temps de la solution cachée, que l'on ne retrouve dans aucun tutoriel mais sur le support de Microsoft (et pas dans le msdn).

Voici l'adresse du lien :
http://support.microsoft.com/default.aspx?scid=kb%3Bfr%3B317421 qui nous détail la procédure permettant la création d'un installeur pour notre service !

Utilisation d'un projet de configuration compilé pour installer le service Windows

Une fois terminées les étapes de la section précédente relative à la configuration du projet de service Windows, procédez comme suit pour ajouter un projet de déploiement qui assemble l'application du service en vue de son installation :
1.Pour ajouter un nouveau projet à votre projet LogWriterService, procédez comme suit :
a. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Solution 'LogWriterService', pointez sur Ajouter, puis cliquez sur Nouveau projet.
b. Sous Types de projets, cliquez sur Projets de configuration et de déploiement.
c. Sous Modèles, cliquez sur Projet de configuration.
d. Dans la zone de texte Nom, tapez ServiceSetup.
e. Dans la zone de texte Emplacement, tapez C:\, puis cliquez sur OK.
2.Pour indiquer au projet de déploiement ce qu'il doit assembler, procédez comme suit :
a. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ServiceSetup, pointez sur Ajouter, puis cliquez sur Sortie de projet.
b. Dans la boîte de dialogue Ajouter le groupe de sorties du projet, cliquez sur LogWriterService dans la zone Projet.
c. Cliquez sur Sortie principale, puis sur OK.
3.Pour que votre installation soit correcte, il vous suffit d'ajouter une sortie principale. Pour ajouter les actions personnalisées, procédez comme suit :
a. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ServiceSetup, pointez sur Affichage, puis cliquez sur Actions personnalisées.
b. Cliquez avec le bouton droit sur Actions personnalisées, puis cliquez sur Ajouter une action personnalisée.
c. Cliquez sur Dossier d'application, puis sur OK.
d. Cliquez sur Sortie principale de LogWriterService (Active), puis sur OK. Notez que Sortie principale apparaît sous Installer, Valider, Restaurer et Désinstaller.
4.Les projets de configuration ne sont pas inclus dans la configuration de génération par défaut. Pour générer la solution, procédez comme suit :
a. Cliquez avec le bouton droit sur LogWriterService, puis cliquez sur Générer. Ensuite, cliquez avec le bouton droit sur ServiceSetup, puis cliquez sur Générer.

-ou-

Dans le menu Génération, cliquez sur Gestionnaire de configuration pour générer la solution entière en une fois. Activez la case à cocherGénérer pour ServiceSetup.
b. Appuyez sur la combinaison de touches CTRL+MAJ+B pour générer la solution entière. Une fois la solution générée, vous disposez d'un package d'installation complet pour le service.
5.Pour installer le service nouvellement créé, cliquez avec le bouton droit sur ServiceSetup, puis cliquez sur Installer.
6.Dans la boîte de dialogue ServiceSetup, cliquez trois fois sur Suivant. Remarquez l'apparition d'une barre de progression pendant que le service s'installe.
7.Une fois le service installé, cliquez sur Fermer.

Contrôler le service à partir d'un programme externe

C'est le deuxième problème que j'ai rencontré, n'ayant rien trouvé là-dessus non plus, je souhaitais pouvoir démarrer et arrêter mon service à partir de mon application principale.

Il faut ouvrir la fenêtre "exploration de serveurs", puis en déployant notre pc, on peut avoir la liste des services, et en glissant le service dans la zone de "design" de notre application on option alors un "ServiceController", qui est extremement simple à utiliser : ServiceController1.Start()...

ajouter un serviceController

Voilà j'espère que ce tutoriel sera utile à de nombreuses personnes qui rencontreront le même problème que moi.

lundi 12 juin 2006

Richard Stallman, les DRM et de Villepin

Richard Stallman

Je n'aime pas trop paraphraser les nouvelles, il y en a qui le font bien mieux que moi et plus rapidement, toutefois par rapport à notre futur vis à vis de notre utilisation des oeuvres, notamment musicales, il est important de communiquer sur la DADVSI et les DRM.

Je ne vais pas récapituler tout ce qu'il s'est passé depuis plus de 6 mois, mais toujours est-il que le gouvernement est plutôt sur la voie de l'autorisation des DRM et donc du blocage de l'interopérabilité et que cela continue !

Au début des débats, le 1er ministre avait reçu Virgin pour discuter de tout cela, Virgin qui leur avaient offerts des bons de réduction (pour bien les acheter) et à voir ce qu'il se passe jusqu'ici ça a bien marché...

Voici que maintenant Richard Stallman, le fameux représentant des logiciels libres, a demandé de rencontrer Dominique de Villepin pour discuter de cela et notamment lui présenter les 165 000 signatures de la pétition initiée par eucd.info et que je vous invite bien évidemment à signer si ce n'est pas déjà fait.

Et bien De Villepin à "refoulé" Richard Stallman qui est donc venu chez nous (en france) pour manifester.

Je crois qu'on peut se poser des questions sur la démocratie dans notre beau pays où les hommes politiques prennent leur pied en se tapant dessus à la récré et sur notre futur vis à vis de notre liberté culturelle.

Voici mes sources :

http://www.clubic.com/actualite-35606-dadvsi-richard-stallman-refoule-a-matignon.html http://www.pcinpact.com/actu/news/29352-Matignon-se-verrouille-face-a-Richard-Stallm.htm

Un petit rajout suite à un nouvel article :
http://www.toolinux.com/news/communique/dadvsi_en_attendant_zidane_matignon_se_bunkerise_ar7750.html

Je parlais de Virgin qui avait été reçu mais on peut rajouter, selon les dires de l'article "Bill Gates a été reçu comme un chef d’État par le Président de la République"

On peut voir que le gouvernement à donc une préférence vis-à-vis de tout cela alors qu'il ne devrait pas s'en permettre au vu de son incompétances dans le domaine.

mercredi 7 juin 2006

Un nouveau logo pour Sol@rweb

Voici quelquechose que je souhaitais faire depuis un moment maintenant, à savoir mettre à jour mon logo Sol@rweb.

En effet l'ancien symbolisait le "joueur" que j'étais à une époque, avec mes sites qui avaient pour thème les jeux etc... mais c'est maintenant différent, je voulais que ça représente le "webmaster", internaute, etc...

J'ai donc refait mon logo toujours avec le soleil bien sur ^^ mais avec pour "centre", "coeur", l'arobase, qui représente le web, et qui finallement colle aussi plus avec le pseudo sol@r-web.

Je vous met une version en gros et petit, on voit plus les défaut sur la grosse version mais c'est rare qu'on le voit à cette taille la :)

logo Solarweb

Qu'en pensez-vous ?!