Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6] Applicazioni IIS

Sto provando a realizzare applicazioni IIS con VB6 :
Da quello che ho capito riesco a generare pagine html sul pc del client che
ha chiesto qualcosa .
Io vorrei creare un progetto in Vb6 che invece di diventare un semplice
eseguibile , diventi una pagina html .
In questo modo poi potrei inviarla come risposta ai client che interrogano
il mio web server :
in pratica il programma è accessibile da tutta la rete aziendale !!!
E' possibile quindi in Vb6 generare una pagina htm invece che un eseguibile
?
Eventualmente dovrei forse generare il file html da codice dinamicamente ?
In tal caso dovrei sovrascrivere il file ogni secondo !!!
E' forse possibile farlo con 
VS.NET
 generando un file asp invece che un
eseguibile?
Grazie
*Fede*

 un eseguibile?
Appunto.
Ciao
Alberto

Cos'è VBD ?
Io intendevo dire che  voglio rispondere ai miei client una pagina html ,
e in particolare voglio rispondere una pagina html che in realtà sia
un'applicazione  che creo in VB ,
ma le applicazioni che creo con VB sono degli eseguibili e non delle pagine
html :-(
AIUTOOOOOO
Con il SP è andata bene , grazie mille approposito !!!

 pagine html :-(
Allora, se è questo che vuoi fare, il VBD è la tua strada.
Devi creare un progetto UserDocument ActiveX Dll, poi mettici dentro un
textbox, una label e un commandbutton, fai due o tre giochini a caso, e crei
il pacchetto Internet col PDW.
A questo punto, piazzi il pacchetto in una condivisione di IIS, e accedi
alla pagina htm generata dal wizard.
Metti a posto DCOM, MDAC, sicurezza sul client (come spiegato su MSDN e
anche al termine del PDW), et voilà.
Ciao
Alberto

 anche al termine del PDW), et voilà.
Puoi essere + preciso ?
Grazie 1000 , veramente !!!

> MSDN e anche al termine del PDW), et voilà.
Concordo.
Ad occhio, direi che è un problema di sicurezza.
Supponiamo il tuo IIS sia sulla macchina \\Pippo.
Su ogni client che vuole accedere, vai nelle impostazioni di IE, e aggiungi
Pippo nei 'Siti Attendibili', senza richiedere https, e metti la protezione
dei siti attendibili a 'bassa' (che è poi la predefinita).
Per quanto riguarda DCOM ed MDAC, vale quanto si dice per qualunque
applicativo VB. Vedi i numerosi post su [Distribuire applicazioni ADO].
DCOM98 va installato, prima dell'installazione del tuo app, su sistemi W95 e
W98 prima edizione;
MDAC2.71 va installato, sempre prima del setup, se usi ADO.
L'ideale, per distribuzioni su IIS/IE, è mettere i due file DCOM98 e MDAC271
sulla stessa condivisione IIS, e mettere il link ai file in una pagina htm
di istruzioni, che spieghi anche come abbassare la sicurezza per i siti
attendibili.
Ciao
Alberto
Ciao
Alberto

 MDAC2.71 va installato, sempre prima del setup, se usi ADO.
Sto provando con un client in Win2000 pro , e nel mio progetto di esempio
(un'immagine con una casella di testo e un timer che aumernta un contatore)
non uso ADO
Adesso quando mi collego mi chiede :
"Installare ed eseguire 
http://TEC3/ESEMPIO/Progetto1.cab
 ?
L'autore non può essere determinato
impossibile trovare la firma elettronica Authenticode . "
SI - NO - Altre info
Se dico SI vedi che rimane la clessidra per un po ( 20 secondi) poi torna la
scritta :
Si è scelto di scaricare un file dal percorso ...
Apri o salva  ....
Secondo te è normale che mi chieda di installare il CAB o dovrebbe accedere
direttamente alla pagina web e fregarsene del CAB ?
Grazie Infinite !!!

 accedere direttamente alla pagina web e fregarsene del CAB ?
Il CAB contiene tutti i componenti del tuo progetto.
I 20 secondi di attesa sono i tentativi che sta facendo di installare tutto
nel tuo registry.
Poi, qualcosa non funziona.
Le possibilità sono due:
1) non si installa qualche componente. Se hai fatto un semplice progettino
di prova, non dovresti avere molti componenti aggiuntivi. Per vedere questo,
vai nei file temporanei di Eplorer, trovane uno con un nome assurdo, con
data ed ora del tentativo fallito. Trascinalo sul desktop e leggilo, c'è
dentro il log dell'installazione.
2) hai un runtime error nell'Initialize dello userdocument.
ciao
Alberto

Ok , presumo che installi i componenti necessari a vedere l'applicazione .
A sto punto mi viene un dubbio : l'applicazione gira nel computer dove c'è
IIS
Io nel client vedo una pagina web generata dinamicamente che mi mostra cosa
sta succedendo nel PC dove l'applicazione gira ?
Domani faccio nuovi tentativi percè a casa non ho la rete !!!
Grazie
FeDe

ECCO IL FILE LOG DI ERRORE :
*** Code Download Log entry (05 Aug 2003 @ 17:47:26) ***
Code Download Error: (hr = 800c0005) Impossibile individuare la risorsa
specificata.
Operation failed. Detailed Information:
     CodeBase: 
http://tec3/ESEMPIO/Progetto1.CAB
     CLSID: {6F0A81BA-8B98-4C96-A507-8C15B72B3180}
     Extension:
     Type:
LOG: Item Progetto1.dll being processed.
--- Detailed Error Log Follows ---
LOG: Download OnStopBinding called (hrStatus = 0 / hrResponseHdr = 0).
LOG: Item Progetto1.dll being processed.
LOG: Item msvbvm60.dll being processed.
LOG: Item OLEAUT32.DLL being processed.
LOG: Item OLEPRO32.DLL being processed.
LOG: Item ASYCFILT.DLL being processed.
LOG: Item STDOLE2.TLB being processed.
LOG: Item COMCAT.DLL being processed.
LOG: Item VB6IT.DLL being processed.
LOG: URL Download Complete: hrStatus:0, hrOSB:1, hrResponseHdr:0,
URL:(
http://tec3/ESEMPIO/Progetto1.CAB
)
LOG: Download OnStopBinding called (hrStatus = 800c0005 / hrResponseHdr =
0).
LOG: Redundant download attempted, but no more codebases available.
LOG: URL Download Complete: hrStatus:800c0005, hrOSB:0, hrResponseHdr:0,
URL:(
http://activex.microsoft.com/controls/vb6/VB6IT.cab
)
LOG: Reporting Code Download Completion: (hr:800c0005 (FAILED), CLASSID:
6f0a81ba..., szCODE:(
http://tec3/ESEMPIO/Progetto1.CAB
), MainType:(null),
MainExt:(null))
Che errore sarà mai ?Ciao*FeDe*

Ho risolto il problema !!!
Praticamente creavo il pacchetto dicendo di scaricare un componente dal web
, e non lo trovava !!!
Mi manca solo da chiarire se l'applicazione viene eseguita nel client o nel
server web !!!
praticamente l'applicazione che andrò a realizzare comunicherà con una
scheda da 700 ? ,
e chiaramente la scheda sarà montata solo nel PC  che conterrà il web server
.
Il Client in pratica sfrutta tutto questo ambaradam per vedere nel proprio
monitor quello che succeede in quel PC ,
ed eventualmente interviene come se fosse davanti al PC Server .
Ciao

 Che errore sarà mai ?Ciao*FeDe*
Quando hai creato il pacchetto, hai indicato (forse era di default e tu
semplicemente non lo hai tolto), di scaricare alcuni componenti dal sito
Microsoft, anzichè inserirli nel CAB.
Se fai il pacchetto passo-passo, vedrai che a un certo punto ti chiede, per
ogni componente, se vuoi che venga inserito nel Cab o che il client lo
scarichi da MS. Metti tutto nel Cab, altrimenti serve una connessione
internet per il client.
Per l'altro quesito, sappi che i VBD eseguono con la CPU del client. Il
server IIS è semplicemente un 'distributore' dell'applicazione.
Ciao
Alberto

 ed eventualmente interviene come se fosse davanti al PC Server .
Non ti seguo più.
Adesso addirittura mi fai pensare di volere qualcosa di Terminal Server...
Ciao
Alberto

Ciao Alberto !!!
Dopo tutte le prove fatte ho le idee chiare :
La soluzione adottata praticamente , come dici tu , è semplicemente un
distributore "automatico" della mia applicazione :
Infatti , una volta avviata viene eseguita nel client
(per verificare questo ho spento il server , e nel client continuava a
funzionare !!! )
E' veramente interessantissima come soluzione , e ti ringrazio per il
gentile aiuto che mi hai dato !!!
Vorrei continuare con gli esperimenti , cercando di risolvere questo nuovo
problema :
Ho un PC che ha un'applicazione che gira , la quale comunica con una scheda
, quindi necessita di un particolare hardware .
Il PC con la scheda è al 18° piano di un grattacielo che ha 100 PC in rete .
IL PC NON E' IL SERVER DELLA RETE !!!
Vorrei accedere all'applicazione da qualsialsi dei PC , ma senza usare
winsock o altri particolari controlli .
In particolare vorrei proprio evitare di installare "versioni client"
dell'applicazione , perchè altrimenti ho finito di star bene,
perchè mi chiamerebbero ogni 2 giorni !!!
Pensavo di fare un'applicazione che mi spedisca al client che ne faccia
richiesta , una pagina web dinamica che riproduca quello che sto
vedendo sul PC al 18° piano !!! Praticamente il client deve funzionare come
se fossi davati al PC al 18° piano .
Il client può essere qualunque dei 100 Pc in rete .
Ciao

 Il client può essere qualunque dei 100 Pc in rete .
Mmmmhhh....
Esistono diverse strade:
1) Terminal Server. Occorre però che il pc con l'hardware sia un W2000
Server, e che l'applicazione sia un servizio con una consolle di
amministrazione ed interrogazione
2) Qualunque emulatore di desktop, ad esempio il più economico è NetMeeting,
già installabile su qualunque PC, che ti consente di accedere al PC come se
ti trovassi là. Problema: non ammette concorrenza, se due utenti si
collegano uno viene buttato fuori
3) Applicazione Asp che legga lo screen del pc, e lo inserisca in una pagina
asp, distribuendolo attraverso IIS. Problema: occorre che ci sia un utente
loggato, e che tale utente sia lo stesso di esecuzione di IIS.
4) Appoggio su base dati. Se l'applicazione che sfrutta questo hardware
dedicato, sostanzialmente ricava dei dati, può mettere questi dati in un
database (ad esempio MSDE sarebbe perfetto), e poi tu, con Asp o Vbd, fai
una applicazioncina client che legge i dati ricevuti e li visualizza. Questa
è la soluzione in assoluto più flessibile (ed è quella che utilizzo io,
visto che faccio proprio impianti come quelli che tu descrivi).
Ciao
Alberto

 visto che faccio proprio impianti come quelli che tu descrivi).
Ma questo MSDE rimane nella RAM , o è un file che continua a venir
sovrascritto  ?
Secondo te VS:NET ha qualche funzionalità che potrebbe far al caso mio ?
Pensavo : se io creo un'applicazione asp che gira sul PC al 18° piano , vi
accedo via browser dai client
eseguendo le funzioni richieste dalla pressione dei bottoni direttamente sul
server !!!
Ciao

 direttamente sul server !!!
Può funzionare, ma non è assolutamente semplice da realizzare.
Io, ma non conosco assolutamente l'applicazione di acquisizione che hai,
insisterei sulla soluzione con database (MSDE o altro non importa), e con
client molto leggeri distribuiti con Asp o Vbd.
Ciao
Alberto


L'applicazione praticamente legge dei dati da un PLC attraverso una dll :
In ASP posso chiamare dll ?
Con Vb 6 posso fare qualcosa in Asp ?
Grazie

Ti ringrazio , adesso ho + chiare le strade possibili !!!
Sono cocciuto nel voler tentare di usare ASP (con il .NET ) ,
ma so che se fallisco ho altre strade molto valide !!!
Grazie 1000 di tutto !!!

 Il client può essere qualunque dei 100 Pc in rete .
Non sono sicuro che possa essere una soluzione per il tuo
problema, anzi ripensandoci forse no, però... non si sa mai:
ma hai provato mai VNC ? E' un SW di controllo remoto,
freeware e Open source.
Ce ne sono anche delle versioni che sfruttano la compressione:
TightVNC per esempio.
Bye, G.

 freeware e Open source.
Se leggi i post che seguono, vedrai che se ne è già parlato ed è stata una
soluzione scartata...
Ciao
Alberto

Grazie comunque , ma la soluzione l'ho scartata !!!
Adesso mi sono impuntato nel voler fare l'applicazione in .NET , creando una
pagina web in asp (al posto di un exe) , cosě posso accedere dai vari client
...
Ciao