deployment retail="true" pour ASP.NET

Ce n’est pas une information de première fraicheur :-) mais compte tenu qu’elle n’est pas très documentée, je la relaie dans cet article.

Depuis ASP.NET 2.0, nous avons l’élément <deployment> dans <system.web> qui permet de définir à un seul endroit (Machine.config) si les applications ASP.NET présentes sur le serveurs sont en production :

<configuration>

<system.web>

<deployment retail="true"/>

</system.web>

</configuration>

Ce paramétrage a deux effets :

  • Rétablir les performances optimales d’ASP.NET (Compilation, cache des ressources AXD, gestion mémoire, timeouts des pages) qui étaient réduites par le mode debug
  • Et purement et simplement désactiver le débogage, la trace ASP.NET et les messages d’erreurs ASP.NET complets

Ceci quelque soient les paramétrages mis dans les Web.config.

 

Je vous conseille d’appliquer ce paramétrage systématiquement dans la production.

Et justement, par curiosité, avez-vous testé de rechercher si vous aviez du debug="true" sur vos serveurs ?

findstr /S " debug=" *.*

 

findstrA

 

 

A bientôt,

Sebastien,

-

deployment Element - https://msdn.microsoft.com/en-us/library/ms228298.aspx

When retail is set to true, ASP.NET disables certain configuration settings such as trace output, custom errors, and debug capabilities.

Don’t run production ASP.NET Applications with debug=”true” enabled - https://weblogs.asp.net/scottgu/archive/2006/04/11/Don_1920_t-run-production-ASP.NET-Applications-with-debug_3D001D20_true_1D20_-enabled.aspx