Archives mensuelles : septembre 2009

image

Résoudre le problème : Login failed for user IIS APPPOOLDefaultAppPool

En voulant exécuter une application web sur mon poste je me suis retrouvé avec cette
erreur qui a première vue est habituelle :

image

Erreur classique sauf que dans ce cas l’utilisateur en question n’est pas IIS_WPG
comme on le rencontre généralement mais il s’agit curieusement d’un inconnu nommé
“IIS APPPOOLDefaultAppPool”. Et après un petit tour rapide dans la liste des comptes
utilisateurs Windows, on se rend vite compte que cet inconnu est très discret puisque
introuvable.

Cet utilisateur est lié à une nouveauté importante apparue dans Windows 7 et Windows
2008 R2, et pour le moment principalement utilisée par IIS 7.5. En effet la gestion
de l’identité des application pool a été changée :

image

Comme vous pouvez le voir l’identité des application est à présent définie comme étant
“ApplicationPoolIdentity”. IIS 7.5 créé  en effet un nouveau compte utilisateur
pour chaque application pool sous la forme “IIS APPPOOLApplicationPoolName” afin
d’avoir une meilleure isolation. Ces comptes utilisateurs ne sont pas des comptes
utilisateurs classiques puisqu’il s’agit d’un nouveau type de compte utilisateur proposé
par Windows Server 2008 et Windows 7 : les comptes utilisateurs virtuels. Ces comptes
utilisateurs sont des comptes utilisateurs spécifiques qui ont le même comportement
que les comptes traditionnels (ces comptes peuvent être utilisé par des ACL sans aucun
problème) mais ne sont pas visibles dans les interfaces de Browsing de comptes.

Ainsi si vous souhaitez ajouter les droits à l’utilisateur “IIS APPPOOLDefaultAppPool”
pour accéder à votre base, ne changez pas l’identité de votre ApplicationPool
(même si c’est contraire à toutes les pages du web traitant du sujet [ici, ou
encore ])
car vous perdrez le bénéfice de ce nouveau mécanisme de sécurité.

Pour rajouter cet utilisateur au niveau SQL Server il suffit de saisir son nom de
compte complet sans passer par l’interface de sélection de compte.

image

En savoir plus :

What’s New
in Service Accounts in Windows Server 2008 and Windows 7


GoodBye
Network Service

Quelques prédictions sur la PDC 09

Bon
pour une fois, je vais essayer de me mouiller en essayant de deviner quels sont les
éléments que l’on verra lors de l’édition de la PDC de cette année. La PDC est en
effet l’évènement où de grosses annonces sont faites : première démo des API Win32,
première présentation du framework .net et de Visual Studio .net, démonstration de
Windows 7 et de Windows Azure, etc…

Bon OK, ce n’est pas vraiment une prédiction puisque c’est officiellement annoncé.
Le focus de la PDC sera en grosse partie mis sur Windows Azure. L’offre de Cloud Computing
de Microsoft devrait être disponible en version finale et devrait apporter son lot
de nouveautés par rapport aux versions que l’on a a disposition actuellement.

Microsoft devrait proposer la Beta 2 de Visual Studio 2010 et du framework .net 4.0.
Ces versions majeures devraient être très proche des produits finaux. Je m’attends
à un focus sur l’amélioration des performances de l’IDE, à quelques nouveautés à propos
de Workflow Foundation, et à une meilleure intégration du SDK d’Azure. Avec cette
beta 2, l’éditeur devrait annoncer une période un peu plus précise de la disponibilité
des versions finales.

Silverlight Mobile pourrait refaire surface. Le projet est lancé depuis bien longtemps
et nous n’en entendons quasiment plus parler depuis bien longtemps. Que cela soit
sur Windows Mobile ou sur les téléphones Nokia, l’investissement a été important et
il ne serait pas surprenant d’avoir une annonce à ce sujet en novembre.

Après les Tablet PC et SecondLight la seconde version de la table Surface, un nouveau
matériel pourrait être également présenté.  On pourrait donc voir le
nouveau mur interactif
ou peut-être la
rumeur de tablette au nom de code Courier
ou tout autre chose.

Ce que l’on ne verra pas à la PDC :

Windows mobile 7. Il y a quelques rumeurs qui circulent sur le fait que 7 arriverait
plus rapidement que prévu. Je pense que ce n’est pas du tout le cas, et qu’il y a
confusion avec Windows
7 embedded
.

Et vous qu’en pensez-vous ? Quels produits et annonces attendez-vous ?

News de la semaine #8

imageCommençons
la semaine avec des nouvelles de Windows Azure. Microsoft a
livré une première version des API de management de Windows Azure
. Cette API permet
de gérer les déploiements ainsi que les différents services hébergés sur Azure.

Microsoft et Zend (éditeur de PHP) ont annoncé les
Simple API for Cloud Application Services
. Ce projet permet aux développeurs PHP
d’avoir une API qui leur est propre afin d’utiliser Windows Azure. Vous pouvez consulter
cette interview
menée par Jean Christophe
Cimetière
(transfuge de Microsoft France parti à la maison mère à Seattle) pour en
savoir plus
.

Microsoft vient de mettre à disposition la version 2 du Microsoft
Web Platform Installer
. Ce logiciel permet de déployer de manière très simple
un grand nombre d’applications web en installant toutes les dépendances nécessaires.
Ainsi si vous souhaitez installer WordPress sur votre serveur sans vous ennuyer
installer la bonne version de PHP, la bonne version de MySQL et configurer IIS afin
que l’ensemble fonctionne correctement, cet outil est fait pour vous.

Toujours à propos du web, le programme BizSpark fait des émules puisque Microsoft
a annoncé le programme WebsiteSpark
. Ce programme permet aux indépendants travaillant
dans le monde du développement web ainsi qu’aux petites entreprises (- de 10 employés)
de disposer de produits Microsoft gratuitement que cela soit pour le développement
et même pour des environnements de production. Vous pouvez visionner
cette interview de Scott Guthrie pour plus d’infos
.

A propos de WPF, Jaime Rodriguez continue
de publier sa série de Q/A internes
. Comme toujours, les questions (et donc les
réponses) sont pertinentes et très intéressantes à découvrir.

Du coté des évènements, Le buzz continue d’être entretenu à propos de la PDC 09 grâce
à l’annonce d’un Bootcamp gratuit
dédié au développement sous Windows 7
.

Microsoft France propose une nouvelle formule d’évènement avec les
Microsoft Days Live
. La formule est simple, au lieu de vous déplacer vous restez
tranquillement au bureau et assistez à la retransmission en direct diffusé grâce
Silverlight. L’évènement de la rentrée aura de plus un invité de marque puisque Steve
Ballmer en personne sera présent pour le
lancement de Windows 7, Windows 2008 R2
.

Du côté de l’actualité française, Sebastien
Pertus
vient de publier une première version de son
outil d’analyse de serveurs SQL Server
. Il est disponible
gratuitement sur Codeplex
.

Frédéric Colin continue sa série d’articles dédiés à WCF avec cette fois-ci un
article dédié à l’utilisation de WCF avec le service MSMQ
.

Et enfin Gaël Covain nous présente une astuce permettant de faire
des points d’arrêts sur des instances spécifiques
.

Crossposté vers THB

Microsoft Days Live avec Steve Ballmer le 6 Octobre

Découvrez les nouveaux produits Microsoft en participant aux Microsoft Days Live avec Steve BallmerSe
rendre à un évènement Microsoft même gratuit est très souvent un investissement même
si nous avons la chance en France qu’ils soient gratuits. Entre les frais de déplacement,
d’hébergement et d’immobilisation, l’investissement nécessite d’avoir un budget spécifique
dédié à la participation aux évènements techniques.

Microsoft innove en vous proposant d’assister de manière “virtuelle” (sur Internet)
au prochain grand évènement qui sera présenté par Steve Ballmer lui-même. L’éditeur
de Redmond proposera en effet la retransmission en live via Silverlight du lancement
des produits Windows 7, Windows Server 2008 R2 et Exchange Server 2010 avec intégration
de Facebook et Twitter afin de pouvoir partager vos impressions. Voilà une initiative
intéressante, j’y serais !

Pour d’infos :

S’inscrire
au Microsoft Days Live avec Steve Ballmer

News de la semaine #7

imageDu
côté de l’actualité française, Cyril Sansus nous rappelle les
différences entre la création de thread et l’utilisation du ThreadPool
. Exemples
à l’appui, ce sont quelques rappels fondamentaux qui nous sont ainsi proposés.

Frédéric Colin continue
sa série d’articles dédiés à l’extensibilité de WCF
avec cette fois-ci l’exemple
concret utilisé pour montrer les capacités de WCF en la matière.

Etienne Margraff nous informe d’une anomalie liée à l’ergonomie de la
gestion de la mise en étagère (shelving) dans Visual Studio 2008
.

Après l’annonce de la création de la CodePlex Foundation évoquée la semaine dernière,
les premières réactions sont apparues telles que celles de Phil
Haack
, de Scott
Bellware
, Jeremy
Miller
et d’Ayende.
Des opinions intéressantes afin de mieux comprendre l’initiative de Microsoft.

Du côté de l’actualité Produits, Ayende nous annonce la
disponibilité en version 1.0 de son outil de profiling pour NHibernate et Hibernate
.

Novell nous annonce quand à eux la
disponibilité de MonoTouch en version 1.0
. Ce produit permet de développer des
application pour iPhone directement en managé grâce au langage C# et à un subset de
Mono.

Crossposté vers THB

News de la semaine #6

image

Azure arrive à grand pas, et par conséquent de plus en plus d’éditeurs et/ou développeurs
testent l’utilisation des services Azure. Ainsi
Ayende nous informe que NHibernate fonctionne sans problème particuliers avec SQL
Azure.
Il va même plus loin en faisant appel
à des volontaires afin d’implémenter une fonctionnalité de Sharding
destinée
palier la limitation de taille de 10Go imposée par Microsoft.

Toujours à propos d’Azure, Magnus nous propose un post
à propos de l’utilisation de MEF (Managed Extensibility Framework) avec les projets
Azure
.

Du côté de l’actualité française, Lionel Limozin termine sa série de posts sur shared_ptr. Dans
ce dernier post
, il explique comment transformer un objet managé en pointeur natif
void* sans avoir à se soucier de la destruction.

Mitsu Furuta nous présente le
résultat du travail effectué lors de la Surface Academy
. Ce stage de 2 mois
réuni 5 étudiants autour d’un projet : créer un jeu de carte en utilisant la table
Surface. Le résultat est sympathique et permet de se rapprocher de conditions de jeu
réelles.

Toujours à propos de WPF, Tomer Shamam a écrit un post rapide mais efficace afin de
décrire les
deux types de virtualisation proposés par le framework
.

A propos de la sécurité, Microsoft
propose une nouvelle extension à WinDbg qui vous indique si un crash applicatif peut
être exploité à des fins malicieuses
. Une extension donc fortement intéressante disponible
sur codeplex
.

Du côté de l’actualité Produits, Patrick Smacchia nous annonce la
disponibilité en RTM de CppDepend
la version du populaire outil NDepend dédié
aux applications C++. Un outil indispensable afin de mieux comprendre le code d’une
application.

MonoDevelop passe en version
2.2
et passe la seconde afin de mieux supporter le multi-plateforme.

Et enfin pour terminer, une actualité un peu particulière qui concerne la création
d’une fondation Open Source par Microsoft : CodePlex
Foundation
. Une bonne initiative soutenue par des têtes connues telles que Miguel
De Icaza de Novell
. A noter que cette bonne nouvelle est en partie gachée par l’annonce
du départ de Sam Ramji de Microsoft
. Sam Ramji a en effet été une des figures
emblématiques qui ont réussi à faire évoluer les mentalités et la stratégie de l’éditeur
vers plus d’ouverture vers les standards et une grande ouverture vers le monde Open
Source.

Crossposté vers THB

Required permissions cannot be acquired

Exécuter du code natif sous Windows Azure

Dans le cadre de la migration d’une application existante vers Windows Azure j’ai
été confronté à ce message d’erreur :

Required permissions cannot be acquired

En regardant de plus près la StackTrace, j’ai constaté que cette exception liée donc
à un environnement restreint était causée par le chargement d’une assembly qui était
un wrapper de DLL natives. Après quelques recherches dans les propriétés des projets
de ma solution, j’ai finalement réussi à trouver où activer l’exécution de ce type
de code.

Si vous souhaitez souhaitez exécuter du code en Full Trust et donc activer l’exécution
de code natif, vous devez modifier la définition de votre service et modifier la valeur
de l’attribut enableNativeCodeExecution à true :

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="DisplayOnTheCloud" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="DisplayRole" enableNativeCodeExecution="true">
    <InputEndpoints>
      <!-- Must use port 80 for http and port 443 for https when running in the cloud -->
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
    </InputEndpoints>
    <ConfigurationSettings />
  </WebRole>
</ServiceDefinition>

image

Aller plus loin avec les Threads

Lorsque l’on parle de Thread avec le framework .net, le reflexe naturel est de penser
au namespace System.Threading. Ce namespace contient en effet presque tout ce que
.net vous propose afin de gérer le multithreading.

Cela est peu connu et peu utilisé, mais il est possible de dépasser certaines limites
de la classe Thread en utilisant une classe auxiliaire ProcessThread présente quand
à elle dans System.Diagnostics. Cette classe fournit tout un tas de service interessant
comme la possibilité de définir l’affinité d’un thread afin de le faire exécuter sur
un processeur en particulier ce qui n’est pas possible à l’aide de la traditionnelle
classe Thread :

using System.Diagnostics;

namespace FurtherWithThreads
{
    class Program
    {
        static void Main(string[] args)
        {
            int threadId = AppDomain.GetCurrentThreadId();
            SetProcessorAffinity(threadId,1);
            while(true)
            {
                
            }
        }

        static void SetProcessorAffinity(int threadId, int processor)
        {
            var processorThread = (from ProcessThread t in Process.GetCurrentProcess().Threads
                                  where t.Id == threadId
                                  select t).Single();
            processorThread.ProcessorAffinity = (IntPtr) processor;
        }
    }
}

image image

Comme vous pouvez le constater le code s’exécute bien sur des cœurs différents comme
souhaité.

News de la semaine #5

imageC’est
désormais une tradition, nous allons débuter les actualités de la semaine avec une
nouvelle qui concerne Windows Azure. Steve
Marx nous annonce en effet que les délais d’activation des clés pour accéder à Windows
Azure sont désormais supprimés
. Il est donc plus que jamais temps de tester l’offre
de Cloud Computing de Microsoft.

Phil Haack nous propose un post que j’apprécie tout particulièrement à propos des différents
types de réaction des développeurs face aux nouveautés des langages.
Un post qui
reflète bien la réalité des choses et qui vous rappellera sans aucun doute bien des
choses si vous êtes formateur et/ou speaker.

Toujours à propos des langages Cyril présente une astuce très efficace permettant
d’éviter les
problèmes de performance lié à la méthode TryParse du type Enum
.

Du coté du C++, Lionel Limozin continue sa série de post concernant la
prévention des fuites mémoires
(la
première partie est toujours disponible
).

Matthieu Mezil nous propose quand à lui un exemple
d’utilisation de PLinq
, exemple couplé (sans surprise de la part de Matthieu)
à Entity Framework.

Je ne parle habituellement pas de SQL Server mais je ferais exception à cela cette
semaine en vous invitant chaudement à voter
pour la suggestion de Christian à propos d’une aberration au niveau de l’interface
de création de connexion
. La suggestion est présente sous Connect et plus de personnes
la soutiendront plus on aura de chances qu’elle soit prise en compte par Microsoft.

Et enfin, nous allons terminer ces news par les actualités Produits et notamment ceux
de l’excellente société JetBrains. L’éditeur a en effet annoncé la
mise à disposition en version beta de YouTrack leur nouvel outil de bug tracking
.
Quand à ReSharper, un nouveau plugin intéressant vient de voir le jour. Nommé Whysharper celui-ci
vous propose d’en savoir plus sur les différentes recommandations proposées par R#.

Après la sortie en RTM de Windows 7, Microsoft
vient de mettre à disposition une CTP de la version embedded dédiée au monde de l’embarqué
.

Toujours du coté de Redmond, Virtual
Earth Server V2
vient d’être mis à disposition. Une offre intéressante si vous
avez besoin d’héberger vous même la solution de cartographie de Microsoft pour des
raisons de contraintes techniques ou politiques.

PostSharp vient de fêter sa 5ème année d’existence..
Des motivations de départ à l’impact sur sa carrière professionnelle, le développeur
principal de ce framework  d’AOP pour .net retrace à cette occasion l’historique
du projet
.

Crossposté vers THB

image

TechHeadBrothers ouvre une section vidéo !

imageLaurent
Kempé
> vient d’annoncer l’ouverture d’une
nouvelle section destinée aux vidéos
techniques sur TechHeadBrothers.
Cette nouvelle va permettre de varier les différents types de contenus présents sur
le site.

Il n’y a pour l’instant qu’une
seule vidéo
(le PostItCast que j’avais publié il y a quelques semaines), mais
mon petit doigt me dit que cette nouvelle
section
va vite se remplir 😉

Vous êtes donc cordialement invité à vous rendre sur TechHeadBrothers afin
de profiter de tout ce contenu technique autour de .net, et même pourquoi pas, à contribuer
en soumettant vos propres actualités/astuces/articles/vidéos !

En savoir plus :

L’annonce
de Laurent