Qualche post fa avevo evidenziato i principali effetti deleteri dell’avere in produzione un applicativo con il debug abilitato.

Ultimamente (ieri), mi è capitato ancora una volta di trovare un applicativo in produzione da parecchio tempo che, per motivi ancora da chiarire, si è ritrovato con il debug abilitato. Gli effetti sono stati che l’architettura bilanciata su due nodi continuava a cadere, provocando disservizio. Un frontend che fino al giorno prima reggeva tranquillamente un milione e mezzo di pagine viste al giorno, si è ritrovato a non sopportarne più di 400 mila, con gravi danni per l’advertising. Una volta riconfigurato il web.config, tutto è tornato agli antichi splendori.

Per evitare questo problema, ringrazio Simone per avermi segnalato la direttiva di configurazione “deployment”:

<configuration>
   <system.web>
      <deployment retail="true"/>
   </system.web>
</configuration>

Questa direttiva è disponibile solo a livello di macchina (quindi machine.config) e non a livello di applicazione. Come si legge nella reference (e un pò meglio qui dal caro Scott), permette di disabilitare per tutta la macchina il debug ed il trace, mettendosi al riparo da eventuali “errori” dello sviluppatore o, peggio, del building server.

La contropartita è che, se ci fosse mai la necessità di riabilitare il debug per un sito qualsiasi, non è possibile farlo senza cambiarlo per tutto il server… ma in ambienti di produzione collaudati direi che questo è un effetto abbastanza trascurabile, se paragonato ai benefici che porta.