Newsgroup: it.comp.www.asp
Titolo: DLL da funzione vbscript in pagina asp

Salve a tutti!
Ho sviluppato una Active X DLL tramite VB6 che interagisce con una
base di dati
posta su SQL Server 7. Il compito di questa DLL è di restituire dei
dati in un particolare formato
in base a dei parametri passati in ingresso.
La DLL viene memorizzata sui client di una LAN e i suoi metodi vengono
richiamati all'interno di pagine ASP
che girano su un sottosito di una Intranet.
In particolare all'interno di una pagina ASP si è inserito una
risposta ad un evento OnClick su una lista di valori. In risposta a
questo evento
viene chiamata una funzione di una dll la quale in base a dei
parametri passati ritorna un valore di uscita.
Dato che progressivamente i PC che hanno bisogno di questa DLL
crescono in continuazione per semplificare il tutto
anche in relazione agli aggiornamenti e alla manutenzione, si è
pensato di registrare la DLL sul Server nella directory
WinNT/System32.
Tuttavia in questo modo al momento della chiamata è come se la DLL non
venisse vista, e non si ha alcuna
risposta. Si è provato anche a registrarla su la cartella del sito, ed
anche su c:\winnt\system32\inetsrv\asp\cmpnts
ma in tutti i casi niente
Il codice nella versione DLL su Server è di questo tipo
<script language="VBScript" RUNAT="server">
Sub lstEsame_OnClick( )
	Set objDesc=Server.CreateObject ("RecSotEsa.clsRecSotESa")
	sDesc=objDesc.RecuperoSottoEsame(".....","....")
	----------------------------------------------------------
	----------------------------------------------------------
	Set objDesc=Nothing
End Sub
</script>
Ho cercato su libri,  Internet e su riviste, ma a meno che non mi sia
sfuggito qualcosa non sono
riuscito a trovare una soluzione a questo problema.
Esiste una soluzione a questo problema oppure mi devo rassegnare alla
DLL sui client?
Grazie in anticipo per qualsiasi suggerimento.

Se 1stEsame è un controllo client-side (ad esempio un bottone, o
un'immagine) non puoi utilizzare uno script server side per controllare
l'evento OnClick.
Se utilizzi Asp.Net ci sono i controlli ServerSide, ma non mi sembra questo
caso.
Devi fare in modo che cliccando quel pulsante venga chiamata una pagina che
contiene il codice
<% set objDesc=Server.CreateObject.......

 che girano su un sottosito di una Intranet.
Non ho capito la questione: dove girano le pagine ASP? E perchè tutto questo
ambaradan non riesci a farlo girare TUTTO sul server? Lo scopo di fare
pagine ASP e relative applicazioni con IE è proprio quello di NON dover
distribuire le DLL sui client, come l'hai raccontata tu stai unendo il
peggio dei due mondi! Il casino delle pagine ASP con la difficoltà di
distribuzione di applicazioni convenzionali.
Saluti
Massimo

 distribuzione di applicazioni convenzionali.
Se non riesco a far funzionare questo codice devo continuare con il
casino.

 <% set objDesc=Server.CreateObject.......
in questo caso funziona sicuramente, ma per la struttura
dell'applicazione sarebbe meglio che tutto avvenisse sulla stessa
pagina senza bisogno di caricamenti ulteriori.
Grazie cmq


Allora:
1) Prova, banalmente, a far girare sul server uno script vbscript (o fare un
programmino in VB che faccia la stessa cosa) che crei l'oggetto e lo chiami,
verifica che vada. Questo ti consente di capire se l'oggetto gira bene "di
suo", senza metterci in mezzo IIS o altre menate. Se non va vuole dire che
sul server ti manca qualcosa
2) Se il test sopra è andato verificare le opzioni di sicurezza, che
l'utente di IIS (IUSR_nomemacchina) possa arrivare al percorso della DLL in
questione ed usando DCOMCNFG verificare che lo stesso utente abbia le
opportune permission di launch e uso
3) Come altra possibilità che viene usata molto spesso puoi registrare la
DLL sotto COM+ in modo da dire al sistema che per farla girare usi un utente
specifico
Saluti
Massimo