mBerube.net
A journey to .Net

Process Explorer, un superbe outils

jeudi, 29 avril 2010 21:24 by mBerube
(Aussi disponible en: English)

J'ai été confronté cette semaine à un problème sur la machine de ma blonde. Le CPU était toujours à 100% et le processus en cause était svchost. Pas très pratique quand on sait que c'est un programme hyper générique pour rouler à peu près n'importe quoi dans Windows. Quand ce genre de situation arrive, il y a une bonne solution, c'est Process Explorer, un outils (gratuit) originalement de la compagnie Sysinternals qui a depuis été acquise par Microsoft. Cet outil donne beaucoup plus d'information sur le contenu d'un processus (nom de l'exécutable, les dll qu'il load, etc.), aidant beaucoup à identifier le coupable et à prendre les mesures. Dans mon cas, il s'agit d'un driver d'imprimante (HP) qui capotait. Est-ce que quelqu'un est surpris d'apprendre que les drivers HP sont problématiques ... 

Voici quelques prises d'écrans tiré de TechNet

Dans la boîte à outils de Sysinternals, il y a d'autres petites trouvailles à explorer. Fouillez, ça vaut la peine.

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   Vie de geek
Actions:   E-mail | del.icio.us | Permalink | Commentaires (0) | Comment RSSRss comment feed

Windows Home Server pour un développeur

jeudi, 22 avril 2010 21:53 by mBerube
(Aussi disponible en: English)

L'an dernier, encouragé par les bons commentaires de Scott Hanselman, j'ai décidé de mettre à l'essai Windows Home Server, une version allégé de Windows Server 2003. C'est un OS très intégré qui permet de facilement centraliser l'information des différents PC de la maison (musiques, photos, vidéos), de prendre des backup complets des différentes machines connectées et d'ensuite prendre tout cela en backup sur un disque externe pour le mettre en lieu sûr en cas de destruction/perte/vol du serveur.

Je l'ai installé sur ma vieille machine (un AMD athlon de presque 10 ans) et ça fonctionnait assez bien, malgré certains problèmes de stabilité principalement causé par l'âge avancé des composantes. De plus, l'espace disque commençant à manquer et les HD IDE devenant de plus en plus rares et coûteux, j'ai décidé de mettre en place une vraie solution de WHS. Le Acer Aspire Easy Store Home Server:

Mis en place depuis 1 semaine, ça fonctionne très bien, le transfert a été très long (400 gb sur un réseau 100mb, ça prend du temps), c'est une machine très silencieuse à cause de son processeur Atom qui consomme peu et chauffe peu.

WHS est livré avec un connecteur qui permet d'administrer la machine. Ceci donne accès aux opérations de base du serveur que tous les utilisateurs domestiques ont besoin. (En passant, MS vend cela comme quelque chose de simple, à la porté de tous. FAUX. Il faut avoir quelques notions de sécurité Windows et de réseautique pour utiliser le produit correctement. Geek requis !).

C'est par contre un produit qui peut aussi être très utile pour une petite équipe de développeurs étant donné la capacité du produit à partager et sauvegarder jusqu'à 10 PC. De plus, en tant que développeur, vous savez très certainement utiliser RDP. Ce faisant, vous êtes connecté directement et pouvez faire à peu près tout ce que vous pouvez faire dans Windows Server 2003. Soyez cependant prudents car WHS utilise une technologie nommé Drive Extender qui permet de créer une sorte de "raid" où tout les disques sont ajoutés et présentés comme un espace de stockage commun:

Évitez donc tous les outils qui gèrent des disques (disk management, RAID controller, defragmenter), laissez plutôt WHS se charger des disques et utilisez les répertoires partagés pour transférer vos fichiers. Par contre, voici 2 choses intéressantes à faire avec votre WHS:

  • WHS permet d'accèder à ses fichiers à distance par une interface web. Vous remarquerez alors que IIS (6.0) est installé et fonctionnel sur la machine, se qui en fait une excellente machine de QA pour vos site web avant de les installer en production. Si vous avez des besoins de base de données, j'ai également installé SQLServer 2008 Express sans problèmes.
  • C'est également un excellent endroit pour installer votre gestionaire de code source. Dans mon cas, j'utilise Visual SVN pour administrer mon gestionnaire et j'ai inclus dans mes répertoires partagés (et sauvegardés), la base de données SVN qui est donc incluse dans mes backups de serveur. Très intéressant !

Il y a finalement beaucoup de Add-ins disponibles, notamment sur We got served pour bonifier les fonctions de votre serveur. C'est un produit très intéressant et son prix relativement bas (moins de 400$, OS inclus), en fait une solution simple et économique pour la maison mais aussi pour le travail.

P.S : je ne reçois aucune gratitude de MS pour vanter ce produit, je ne suis qu'un utilisateur satisfait !

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   Vie de geek | Vie de programmeur
Actions:   E-mail | del.icio.us | Permalink | Commentaires (0) | Comment RSSRss comment feed

Quand modérer ne suffit plus, introduisez un captcha

vendredi, 9 avril 2010 21:03 by mBerube
(Aussi disponible en: English)

3 mois après avoir introduit la modération des commentaires, je dois me résoudre à introduire un captcha dû à la forte augmentation de spam ces dernières semaines. Après plusieurs heures à essayer d'intégrer Recaptcha (sans succès), j'a finalement trouvé un post sur Code Capers qui répondait exactement à mon besoin. Merci Michael.

C'est simple, un peu moins sécure que Recaptcha mais c'est probablement suffisant pour mon petit blog.

Désolé pour les utilisateurs légitimes mais vous savez probablement comme moi que c'est un mal nécessaire.

 

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   BlogEngine.Net
Actions:   E-mail | del.icio.us | Permalink | Commentaires (0) | Comment RSSRss comment feed

Utiliser le Remote Debugger de Visual Studio sans compte de domaine

samedi, 3 avril 2010 15:47 by mBerube
(Aussi disponible en: English)

En recherchant le bogue dont je parlais la dernière fois, je devais utiliser le Remote Debugger sur mon server de QA. Je fais ça régulièrement au travail (dans un domaine), ça fonctionne facile en autant que le compte que vous utilisez est administrateur sur le serveur. Mais à la maison, je ne suis pas dans un domaine donc c'est un peu plus compliqué. Après avoir ramasser de l'information à différents endroits sur le web, j'ai fini par trouver ma solution que j'ai décidé de rassembler ici. Pour l'exemple, supposons la configuration suivante :

  • Un PC
  • Un serveur sous WS 2003 avec IIS 6.o roulant avec le compte par défaut (Network Service)
  • Un utilisateur sur le PC et le serveur nommé MyLocalUser

Scenario 1 : MyLocalUser est administrateur sur le Server

Dans ce scénario, c'est assez simple. Vérifiez que vous avez remote debugger sur le server (sinon, copiez-le du PC, généralement on le trouve sous C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86) et démarrez msvsmon. Si vous êtes connnecté sur le serveur avec MyLocalUser, c'est fait. Sinon, démarrez msvsmon en cliquant droit et en choisissant Run As.. . Entrez les informations de MyLocalUser.

Le remote debugger est maintenant démarré.

Finalement, dans Visual Studio, choisissez "Tools\Attach to process...", et dans Qualifier, entrez le nom du serveur donné par remote debugger (dans notre cas, MyLocalUser@SERVER) et assurez-vous de cocher "Show Processes for all users" et "Show processes in all sessions". Choisissez le processus w3wp et vous êtes prêt à debugger.

Scenario 2 : MyLocalUser n'est pas administrateur sur le serveur

Si MyLocalUser n'est pas administrateur sur le serveur (mais il existe comme utilisateur régulier) et vous ne voulez pas lui donner,  il y a une autre solution. C'est presque comme le premier scénario 1 mais on va créer un compte sur le PC et le serveur seulement pour le remote debugging:

  1. Créer un compte (par exemple RemoteDbgUser) sur le PC et le serveur avec le même mot de passe. Ce compte doit être administrateur sur le serveur ma ce n'est pas nécessaire sur le PC.
  2. Sur le serveur, démarrer Remote Debugger avec "Run as" et utiliser RemoteDbgUser.
  3. Dans Remote Debugger, sous "Tools\permissions", donner accès à MyLocalUser pour débogger (voir image ci-dessous).
  4. Sur le PC, dans Visual Studio, aller dans "Attach process" et entrez RemoteDbgUser@SERVER comme qualifier

Voilà ! J'espère que ça vous aidera et comme ça, vous pourrez passer plus de temps sur vos projets au lieu de rechercher comme moi la façon de faire pendant une heure.

Merci de me lire.

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   Vie de programmeur
Actions:   E-mail | del.icio.us | Permalink | Commentaires (0) | Comment RSSRss comment feed

Petit bogue, grosse soirée

jeudi, 1 avril 2010 22:18 by mBerube
(Aussi disponible en: English)

La semaine dernière, je tentais de trouver la source d'un petit bogue sur ce blog (les liens page suivante/précédente ne fonctionnaient pas) et comme j'ai trituré pas mal le code de BlogEngine.Net pour le mettre en multilingue, j'ai cru bon de chercher dans mon code avant toute chose. La situation était que le lien était formatté comme ceci : http://blog.mberube.net/en/?page=2 (donc sans nom de page). Voici le résultat de mes tests :

  1. Sur le serveur de développement (Cassini), ça fonctionnait.
  2. Sur le IIS 7 local à ma machine sur Win7, ça fonctionnait.
  3. Sur mon serveur web de QA (IIS 6 sur WS2003), ça ne fonctionnait pas.
  4. Chez mon hébergeur (Proweb) sur II6 et WS2003, ça ne fonctionnait pas non plus.

 

Donc bon signe : sur mon serveur de QA, je peux reproduire le problème. Il a toutefois fallu que je me batte avec le Remote Debugger pour trouver la source du problème mais je ferai un post spécialement sur la façon de faire fonctionner le Remote Debugger dans un environnement sans domaine.

J'ai finalement découvert qu'à cause du fait que je n'ai de nom de fichier, IIS rejette la demande avant même que le URL rewriter de mon application puisse intervenir. Sur mon serveur de QA, j'ai ajouter l'engine ASP.NET dans wildcard application maps pour tous les fichiers non trouvés et ça a fonctionné du premier coup. Yé !

 

Je fais la même modification chez mon hébergeur, ça ne fonctionne toujours pas. Hmmmm... 

J'ai fait un correctif dans le code pour arranger la situation mais j'aimerais quand même trouver une explication à ce mystère. Si vous avez des suggestions ou des expériences similaires, laissez un message.

Soyez le premier à noter ce billet

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories:   BlogEngine.Net
Actions:   E-mail | del.icio.us | Permalink | Commentaires (0) | Comment RSSRss comment feed