An attempt was made to load a program with an incorrect format

Se avete deciso di passare a miglior vita, abbandonando il vostro vecchio sistema a 32 bit in favore di uno a 64 bit, voglia essere con un computer nuovo o con uno già carrozzato e un ambiente virtuale, se siete degli sviluppatori in ASP.Net, potreste imbattervi, al primo avvio di un sito che fa uso di assembly esterni al sito stesso, nell’errore: An attempt was made to load a program with an incorrect format.

Che fare? Esattamente come quando ci fu il passaggio dai 16 ai 32 bit, con tutte le storie sulla retrocompatibilità, anche il mondo a 64 bit non potrà esimersi dal rendere accessibili applicativi di vecchio stampo per la nuova tecnlogia. Ecco che allora l’errore di cui sopra, abbastanza criptico nel suo genere, verrà fuori allarmando chiunque non sappia di questa ipotesi e non conosca WOW64, acronimo di Windows on Windows64, ovvero un mondo a 32 bit dentro a quello a 64.Immagine 1

Visto sotto il profilo di IIS 7 e windows 2008 64, quello nel quale ho riscontrato questo errore, si tratta di un semplice passaggio atto ad abilitare questo mondo intermedio. Un passaggio che va ad impattare il modo di comportamento dell’Application Pool associata al sito web, dove con una semplice impostazione si dice di abilitare il sistema a 32 bit. Al resto ci penserà IIS. Fantastico vero?

In pochi, semplici, passaggi:

  1. Aprite la console di Internet Information Server
  2. Verficate quale sia l’Application Pool associato al sito web che intendete modificare
  3. Modificate le proprietà avanzate dell’Application Pool del punto 2 (o eventualmente se è usato da più di un sito createne uno nuovo)
  4. Cercate la voce Enable 32 bit application nella scheda General e impostatela a true

In questo modo il vostro sito web tornerà a funzionare regolarmente.

 

Technorati Tag: ,