Connessione ad ocx esterno

martedì 25 ottobre 2005 - 18.37

mimmo21 Profilo | Junior Member

Vi chiedo se è possibile collegarsi ad un'applicazione exe ActiveX scritta in VB6 che risiede in una cartella diversa da inetpub.Mi spiego meglio, se utilizzo un'applicazione VB.NET Forms riesco a collegarmi con quest'applicazione exe ActiveX mentre se ci provo da una pagina ASP.NET non ci riesco.Ci sono dei problemi di autorizzazione o è un'operazione impossibile con ASP.NET?
Grazie

Brainkiller Profilo | Guru

Che cosa fa questa applicazione .exe su disco ?

Cosa devi fornire in input e cosa deve fornire in output ?

Perchè devi richiamarla da ASP.NET ?

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

mimmo21 Profilo | Junior Member

>Che cosa fa questa applicazione .exe su disco ?
>Cosa devi fornire in input e cosa deve fornire in output ?
>Perchè devi richiamarla da ASP.NET ?
L'applicazione exe utilizza SQL Server e altri ocx e dll scritte con VB6 e C++.Mi devo attaccare all'exe per ottenere dei dati elaborati dal programma tramite apposite e pesanti funzioni (x questo non posso riscrivere tutto in .NET, troppo lungo). Mi serve utilizzarlo da ASP.NEt perchè vorrei vedere una piccola parte di questi dati anche su IE per ora solo in LAN aziendali (sono un programmatore di una società privata che stà sviluppando un programma e l'opzione IE è un servizio in +)
La cosa che mi fà pensare (male) è che da un'applicazione VB.NET Forms la cosa funziona. Per collegarmi all'exe utilizzo l'API di windows CoCreateInstanceEx.
Grazie

Brainkiller Profilo | Guru

Ciao Mimmo,
purtroppo non ho esperienza approfondita in questo tipo di migrazione/integrazione. La causa del non funzionamento però potrebbe essere una questione di autenticazione. Nella Windows Forms l'utente che esegue è l'utente loggato mentre in ASPNET, è un utente particolare che ha molti meno privilegi.

Alla luce poi dei nuovi controlli di sicurezza inseriti nell'SP1 di Windows 2003 e SP2 su Windows XP relativi a COM/DCOM potrebbe proprio essere lì il problema.

Perchè non fai una prova, usi l'impersonation di ASP.NET e fai sì che l'applicazione giri con un utente particolare per esempio lo stesso che utilizzi dalla Windows Form.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

mimmo21 Profilo | Junior Member

>La causa del non funzionamento però potrebbe essere una questione
>di autenticazione. Nella Windows Forms l'utente che esegue è
>l'utente loggato mentre in ASPNET, è un utente particolare che
>ha molti meno privilegi.
>Perchè non fai una prova, usi l'impersonation di ASP.NET e fai
>sì che l'applicazione giri con un utente particolare per esempio
> lo stesso che utilizzi dalla Windows Form.

Grazie per la risp, ho provato quello che mi hai detto e usando l'impersonation di ASP.NET con <identity impersonate="true" userName="administrator" password="prova" /> mi sono loggato come in un'applicazione Windows Form. Ho poi fatto la prova tramite System.Security.Principal.WindowsIdentity.GetCurrent().Name e ho visto che il mio utente era "SERVER-MAIN\Administrator" proprio come per una Windows Form. Ma la connessione ancora non mi funziona. Quando provo a collegarmi al server exe ActiveX scritto con VB6 tramite la funzione API CreateInstanceEX
questa mi ritorna l'HResult n° -2146959355 cioè "Esecuzione del server non riuscito". Hai altri consigli?
Grazie


Brainkiller Profilo | Guru

>scritto con VB6 tramite la funzione API CreateInstanceEX
>questa mi ritorna l'HResult n° -2146959355 cioè "Esecuzione del
> server non riuscito". Hai altri consigli?

Scusa una domanda, non ricordo se era con te che ne parlavo. Non hai provato ad utilizzare il metodo CreateObject supportato ancora da VB.NET ? invece che la CraeteInstanceEx ?

Altri consigli, non ne ho oltre a consultare la Knowledge Base di Microsoft. Il fatto che su Windows Form ti funzioni ed in ASP.NET no mi puzza. Ora che hai utilizzato l'impersonation dovrebbero esserci tutti i diritti necessari. Se provi a spostare l'ActiveX in una cartella del sito web che succede ? (Forse è necessario ri-registrarla).

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5