Il y a quelques semaines, j'avais préparé le post qui est ci-dessous. Je ne l'avais pas posté car après réflexion je me suis dit que j'allais essayer d'en discuter avant avec certains de mes contacts à corp.

Bizarrement je n'ai pas eu de réponse à mon mail (je dis bizarrement car j'ai toujours eu des réponses de ces personnes même s'ils déléguaient quelqu'un pour répondre) qui était beaucoup plus courtois que mon post ci-dessous. N'ayant pas eu de réponse et surtout, ayant été victime à nouveau de ce bug cette semaine à l'insu de mon plein gré, j'ai décidé de vous partager cette information. Voici donc ce post qui était resté dans mes brouillons :


Sujet du post : Microsoft est-il réellement à l'écoute des feedbacks ?

Et bien c'est la question que je me pose depuis hier soir quelques semaines. 
Chrsitoph Willle, un MVP Autrichien m'a contacté hier il y a quelques semaines car il était confronté
au bug que j'avais remonté il y a bien longtemps.
Un bug que je qualifie de "supra-critique" car il empêche un site en ASP.NET 2 dans certains cas d'être indexé par Google et autres crawlers (Vous connaissez un bug plus critique que ça pour un site Internet ?)

Bref l'année dernière j'ai "eu la chance" de rencontrer pendant le TechEd 2006 le développeur qui avait "développé" ce bug. Cela le faisait marrer du reste alors que ce bug m'a pourri plusieurs jours et nuits et d'après lui c'était un bug parmi d'autres... (Je sais ce que vous pensez, et bien oui, l'idée de lui péter une jambe m'a traversée l'esprit Big Smile)

Malgré le fait que plein de sites soient impactés, que Google (en la personne de Matt Cutts) ait confirmé le problème, Microsoft n'a toujours pas corrigé ce bug publiquement, il parait qu'il y a un hotfix privé (Il parait, car on devait me l'envoyer mais je n'en ai jamais vu la couleur, et impossible de mettre la main sur une KB qui traite ce problème, pourtant depuis ma gueulante c'est un bug connu et reconnu) mais encore une fois, un hotfix privé n'est pas une solution acceptable, il devrait être public. Comme je l'ai déjà dit, j'ai trouvé un workarround pour ce bug, donc si je râle encore une fois aujourd'hui, c'est pour tous les autres sites qui ne sont peut-être même pas au courant que leur site a un problème et qui galèrent en vain pour faire référencer leur site sur certains moteurs de recherche. (Il suffit de chercher rapidement sur les newsgroups avec Google pour voir que certains commencent à se rendre compte qu'ils ne peuvent pas être indéxés par googlebot)

Pourquoi je remue le couteau dans la plaie me direz-vous ? Et bien ce que m'a dit ce Christoph hier l'autre jour c'est que ce bug EST PRESENT DANS .NET 3.5 ! (Je n'ai pas testé personnellement car je n'ai pas installé de VS 2008 et je fais entièrement confiance à Christoph qui a galéré pour constater qu'il était victime du même bug que j'avais signalé et il m'a confirmé tout à l'heure peu de temps après qu'il n'a plus d'erreurs 500 dans ses logs depuis qu'il a mis en place mon workarround)

On sait tous (enfin je me suis rendu compte cette semaine en en discutant avec certains que tout le monde ne le sait pas en fait Big Smile)que .NET 3.5 est basé sur le 2.0 mais Microsoft n'a même pas fait l'effort de corriger certains bugs dans cette "nouvelle" version...

Alors, a quoi ça sert que l'on remonte des bugs critiques si presque 2 ans après ils ne sont pas corrigés ! (La 1ere remontée que j'ai fait était (de mémoire) en février 2006 directement à l'équipe ASP.NET)


Quand j'avais préparé ce post, je n'avais pas encore installé .NET 2 SP1 ni Visual Studio 2008. Et bien cette semaine je l'ai fait... Et c'est encore pire que ce que l'on pouvait imaginer.

En effet Lundi j'ai eu la trèèèèès mauvaise idée d'appliquer le .NET 2 SP1 sur les serveurs web de CodeS-SourceS en prod... Bêtement je l'ai appliqué pensant que cela pourrait corriger des problèmes, mais à aucun moment je pensais que cela en rajouterai...

Et bien, très peu de temps après, on s'est retrouvé avec +10 000 exceptions  en moins de 15 minutes. Je pense que vous avez compris le problème : Le SP1 de .NET 2 a empiré le problème du bug de rewriting. Tout fonctionnait nickel avant et dès qu'on a appliqué le SP1 cela a eu pour effet de faire remonter ce bug à la surface sur tous les sites présents sur les serveurs qui utilisaient le rewriting comme expliqué dans mon précédent post. (Alors que l'on a pas touché au site, on a juste appliqué le SP1)

Cette fois-ci je n'ai pas un grand texte d'explication à vous fournir comme la dernière fois car je ne sais même plus ce que j'ai fait pour corriger la chose, cela m'a tellement saoulé de revivre ce bug que j'ai fait un tas de petites bidouilles pour le contourner. Cela m'a encore pourri une journée de boulot. Dans tous les cas, mon workarround fonctionne avec la version .NET 2 SP1, 3 et 3.5 (Chris m'a confirmé ne plus avoir de problème avec mon workarround : http://chrison.net/nGalleryTNGUpdate.aspx)

En conclusion, si vous avez un serveur web en production avec des sites en .NET 2 et que vous faites du rewriting avec des "/" comme séparateur, n'installez pas bêtement le .NET 2 SP1 si votre/vos site(s) fonctionne(nt) correctement (Attention, si vous installez .NET 3.5 cela installera .NET 2 SP1...)

Vous êtes prévenu

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :