Procedura per far funzionare un componente a 32 bit (AspSmartUpload, AspImage, ecc.) sotto un SO a 64 bit

Durante il trasferimento di una applicazione in asp classica da un Windows Server 2000 o 2003 a un Windows Server 2008 a 64bit (da IIS 6 a IIS 7), è necessario prestare attenzione a delle modifiche da apportare.

E' necessario, ad esempio:
  • modificare il codice delle pagine per l’invio delle email, passaggio da CDONTS a CDOSYS;
  • configurare SMTP con componente CDOSYS:
  • configurare II7, permessi, ecc.
  • installare e configurare i componenti a 32 bit (esempio ASPSmartUpload o ASPImage) per il funzionamento in un SO a 64 bit
Creazione di una applicazione COM+ per un componente ASP in Ccmponent Services

Se un componente ASP a 32 bit deve essere eseguito su un sistema operativo a 64 bit deve essere aggiunto a un'applicazione COM + in Servizi componenti.
Devono essere importate autorizzazioni appropriate sulla DLL
La descrizione sotto indicata è basato su Windows Server 2008 (x64)

Component Services si trova sotto Strumenti di amministrazione.
Non bisogna mettere una DLL a 32 bit nella cartella System32 di un sistema a 64.
E' consigliato creare una cartella appositamente per DLL del componente in modo da sapere dove sono e non confondersi con altri file.
Se la DLL non è registrata, può essere registrato durante il processo descritto di seguito.
Questa descrizione mostrare come un componente può essere utilizzato in un ambiente a 64 bit, ma questo procedimento è da fare anche se un componente (sia a 32 o 64 bit) ha bisogno di accedere ai file di rete.

Bisogna creare una nuova applicazione vuota.
Espandere la vista ad albero sulla cartella denominata COM+ Applications".
Selezionare New e Application dal menu a comparsa.
Si avvia "COM Application Install Wizard"
Vi è una scelta di installare un'applicazione pre-costruiti o creare un'applicazione vuota. Selezionare "Crea un'applicazione vuota."



Dare un nome qualsiasi per l'applicazione.
Per il tipo di applicazione selezionare l'impostazione predefinita, "Server application"



Selezionare Application Identity.
Qui vi sono alcune scelte e l'identità dipende dall'uso.
Evitare di utilizzare l'utente interattivo se il server verrà eseguito con nessun utente loggato, perché allora non c'è nessun utente interattivo e l'applicazione non verrà eseguita.
Abbiamo scelto l'utente di servizio locale, ma questo non sarebbe adatto se l'applicazione dovrà accedere ai file di rete.
Un account separato potrebbero essere creato se permessi spaciali sono necessari.
Ogni account selezionato, verrà utilizzato per eseguire tutti i componenti nell'applicazione e deve avere il permesso di lettura e esecuzione del componente DLL e gli appropriati permessi a ogni file o cartelle.



Utilizzare il pulsante Avanti per accettare le impostazioni per gli Application Roles e che completa le COM Application Instell wizard.
Aggiungere un nuovo componente per l'applicazione. Espandere la visualizzazione ad albero sulla sinistra e aprire la cartella Componenti.
Selezionare Nuovo. Ciò avvia il COM Component Install Wizard.



Importare il nuovo componente che non è registrato, e il sistema registrerà questo come viene importato,
Se si importa un componente esistente, notare che vi è una casella di controllo che consente di selezionare componenti a 32 bir.




Scegliere la DLL del componente e selezionarla.
Una volta selezionata, viene visualizzato il messaggio che indica il file del componente e il nome della classe.
E 'possibile selezionare i componenti complementari. Selezionare Avanti per completare la procedura guidata.




Configurazione dell'applicazione
L'applicazione è stata creata e il componente è stato aggiunto, ma non può funzionare senza ulteriori configurazioni.
L'esatta configurazione necessaria dipende dal sistema operativo.
In Windows 2000 dovrebbe funzionare subito accettando le impostazioni predefinite. Sia su Windows 2003 e Windows 2008, le Application Properties devono essere modificato.

Anche in questo caso nella visualizzazione ad albero, espandere la struttura in modo che il nome dell'applicazione sia visibile (è stato Chestysoft nel nostro esempio) e fare clic destro su di essa.
Selezionare le proprietà dal pop-up menu .
Selezionare la scheda Protezione e deselezionare la casella di controllo denominata "Enforce Access Checks" ("Applica controlli di accesso").
In Windows 2000 questo sarà chiaro per impostazione predefinita, ma non nelle versioni successive.
Se è selezionata il risultato sarà visualizzato l'errore asp 0178 quando si tenta di creare un'istanza del componente.


In Windows 2008 Server vi è un settaggio da apportare nelle Proprietà del Componente, se siete in esecuzione di un componente che deve accedere alla Request ASP o oggetti Response.
Per modificare le proprietà dei componenti, fare clic destro sull'icona e selezionare Proprietà.
La scheda "Avanzate" contiene la seguente schermata in cui si deve selezionare la casella "Allow IIS intrinsic properties" ("Consenti IIS proprietà intrinseche").
Questa proprietà non era presente in Windows 2003 o versioni precedenti e, se non è impostata, qualsiasi componente che utilizza Request o Response genererà un errore.


Riavviare IIS in modo tale che le modifiche abbiamo effetto.
È possibile riavviare anche la COM+ Application.


Permessi alla DLL

L'account utente che utilizza il componente deve avere l'autorizzazione di lettura ed esecuzione sul file DLL.
Se avete impostato l'Application Identity come "servizio locale", l'account è chiamato SERVIZIO LOCALE e questa autorizzazione deve essere data la DLL.
Se il componente scriverà in una cartella, la cartella deve anche avere i permessi impostati per consentire questo account a leggere e scrivere.
Se i file devono essere cancellati o sovrascritti, l'autorizzazione richiesta è "Modifica".
Permesso di scrittura è solo quanto basta per creare nuovi file, a non cancellare o sovrascrivere.

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

Nessun commento:

Posta un commento