L’impersonation pour une application ASP.NET sous IIS 7 / 7.5 génère une erreur du type 500.24

Dans son article "Breaking Changes for ASP.NET 2.0 applications running in Integrated mode on IIS 7.0", Mike Volodarsky aborde la problématique de l'impersonation sous IIS 7 / 7.5.
Activer l'impersonation sous IIS7 / 7.5 peut s'avérer plus compliqué qu'il n'y parait.
De prime abord, il suffit de l'activer au niveau de l'interface de IIS pour une application donnée ou simplement ajouter les lignes suivantes dans le Web.Config de votre application :

<identity impersonate= "true">

Cependant, dans certains cas un problème peut survenir.
En effet, au sein du pipeline intégré de IIS il est impossible d'impersonifier l'identité d'une requête au niveau de BeginRequest et de AuthenticateRequest.
Vous recevrez donc une erreur 500 – Internal Server Error du type 500.24 : An ASP.NET setting has been detected that does not apply in Integrated mode.

Il existe deux contournements possibles :

  • Si votre application ne repose pas sur l'impersonation au niveau du BeginRequest et de l'AuthenticateRequest vous pouvez faire en sorte que cette erreur soit ignorée.

    Il vous suffit de rajouter au sein de votre Web.Config les lignes suivantes :

    <system.webServer>
         <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>

  • Si votre application repose sur l'impersonation au niveau du BeginRequest et de l'AuthenticateRequest ou que vous n'en savez rien, vous pouvez passer en pipeline classique pour contourner le problème.

En espérant que cet article vous sera utile.
@ Bientôt
Sylvain Lecerf et L'équipe de support IIS Microsoft France