Come eseguire un'applicazione web a 32 bit su Windows SBS 2008/2011 standard a 64 bit

Elenco dei passi per far eseguire un'applicazione Web a 32 bit (esempio sito web in asp con database in access) su Microsoft SBS 2008/2011 standard

Quando dobbiamo eseguire una applicazione web a 32 bit su un server Windows SBS 2008/2011, perchè ad esempio il sito è fatto in Asp oppure utilizza dei moduli di terze parti a 32 bit (database, posta) o filtro ISAPI che deve essere eseguito sul sito, è necessario eseguire dei passaggi sul server per far funzionare il sito.

Esempio di errore che compare:
Impossibile caricare la DLL 'C:\Program Files\Microsoft\Exchange Server\V14\Bin\kerbauth.dll' del modulo a causa di un problema di configurazione. La configurazione corrente supporta solo il caricamento di immagini create per l'architettura del processore x86. Il campo dei dati contiene il numero di errore. Per ulteriori informazioni sul problema e su come risolvere problemi che riguardano la mancata corrispondenza dell'architettura del processore, vedere http://go.microsoft.com/fwlink/?LinkId=29349.

Seguono i passi necessari per essere in grado di configurare con successo un sito web o un'applicazione web per l'esecuzione in un pool di applicazioni a 32-bit.

In questo caso esempio, abbiamo creato un sito web chiamato test, eseguito con un pool di applicazioni che è anche chiamata test.

Per prima cosa , nelle impostazioni avanzate del pool di applicazione (pool application) dobbiamo abilitare le applicazioni a 32 bit.
Potete vedere sotto l'immagine con le impostazioni avanzate dell'Application pool.


In alcuni casi il tutto funziona.
In molti casi invece se si tenta di aprire una pagina del sito, l'application pool va in crash e si spegne.
Sulla schermata del browser esce il messaggio:
Service Unavailable
HTTP Error 503. The service is unavailable.


Questo viene accompagnato (nel registro eventi delle applicazione) da un evento simile al seguente: IIS-W3SVC Event 2280.



Per risolvere questo dobbiamo modificare i moduli nativi nell'applicationhost.config definendo un parametro bitness preCondition per il modulo RpcProxy nativo.
I moduli nativi (Native modules) sono registrati e non-registrati a livello di server web nella sezione .

Prima di apportare modifiche al applicationhost.config, è meglio eseguire un backup della configurazione corrente di IIS:

  1. Lanciare un Administrative Cmd prompt .
  2. Cambiare il percorso della directory C:\Windows\System32\Inetsrv\
  3. Scrivere "Appcmd.exe add backup NomeBackup"


Una volta che abbiamo fatto una copia di backup possiamo andare avanti e modificare il file applicationhost.config per aggiungere la preCondition al bitness:


  1. All'interno della stessa cmd amministrativa, cambiare il path a C:\Windows\System32\inetsrv\config\
  2. Scrivere "notepad applicationhost.config" che aprirà in notepad il file applicationhost.config
  3. Individuare la sezione .



     4. Modificare PasswordExpiryModule per avere una precondizione bitness in modo che appaia come segue



ATTENZIONE! preCondition è case sensitive "C" deve essere maiuscola.

Importante: Microsoft SBS 2011 standard include le voci per kerbauth e exppw elencati sotto
Questi moduli appartenenti a Exchange e sono anche a 64 bit.
Se si esegue questa operazione su Small Business Server 2011 si dovrà aggiungere il preCondition per bitness64 anche a questi due moduli:

 
5. Salvare e chiudere applicationhost.config.

A questo punto se si tenta di accedere al sito web a 32-Bit comparirà un altro errore: HTTP Error 500,19 - Internal Server Error


Per correggere questo errore dobbiamo eliminare DynamicCompressionModule e StaticCompressionModule dal 32-Bit website/application.

Per fare questo eseguire le seguenti operazioni:


  1. Lanciare un Administrative cmd prompt.
  2. Cambiare il percorso della directory c:\Windows\system32\inetsrv\
  3. Scrivere Appcmd.exe delete module dynamiccompressionmodule /site.name:yourWebsiteName


Attenzione! Sostituire yourWebsiteName con il nome effettivo del vostro sito.
In questo esempio il nome è: test.

Fare lo stesso per il modulo staticcompression: Appcmd.exe delete module staticcompressionmodule /site.name:yourWebsiteName


In questo esempio stiamo usando un sito Web, tuttavia nella maggior parte dei casi, si sarà probabilmente utilizzando una web application.
Modificare il comando per avere /app.name:yourAppName piuttosto che /site.name:yourWebsiteName se si utilizza un'applicazione web.

Dopo aver completato questi passi si dovrebbe ora essere in grado nagivare nellapplicazioni web/sito a 32-Bit.


PS: Se questo articolo ti è stato utile o ti è semplicemente piaciuto, regalami un commento :-)
 Grazie!
Ciao Matteo


2 commenti:

  1. Grazie mille: medesimo problema, mille soluzioni inutili trovate sul web, la tua pagina è saltata fuori solo una volta identificato il problema con la kerbauth.dll!
    Ora se solo risucissi a far funzionare l'ActiveX a 32 bit di Crystal Report 9...

    RispondiElimina
  2. Ci sono tanti post sull'argomento, questo è l'unico che sia stato veramente utile.

    Grazie.

    RispondiElimina