none
Chiamate a dll VB6 da WCF RRS feed

  • Domanda

  • Ciao a tutti, ho realizzato una libreria del servizio WCF, che richiama una dll VB6.

    Il problema è questo: nelle procedure della dll VB6 (non mia proprietaria) si verificano degli strani errori (soprattutto con le date), se il processo iniziale che la ospita è il servizio WCF.

    Il tutto funziona correttamente se il processo iniziale è un eseguibile VB6, un eseguibile VB.NET, oppure se eseguo il progetto VB6 in debug.

    Tra i tanti tentativi ho impostato tutti i miei progetti con CPU di destinazione a x86, e pur non avendo problemi in compilazione del servizio WCF, ho provato anche a sostituire WcfSvcHost.exe con lo stesso in modalità a 32 bit (con il comando "corflags /32BIT+ /FORCE WcfSvcHost.exe"), ma il problema persiste.

    In realtà non credo sia neanche necessario, in quanto l'hosting della libreria WCF è un'application console.


    Non ho più idea di come risolvere… qualcuno può aiutarmi?




    venerdì 8 novembre 2019 10:45

Tutte le risposte

  • Ciao,

    senza specificare meglio i tipi di errore che hai è difficile darti una mano. Posso solo ipotizzare da come lo hai descritto e che si possa trattare di un problema sulle Culture fra WCF e VB6, prova a impostare la la CurrentCulture a CultureInfo.InvariantCulture. 

    sabato 9 novembre 2019 10:49
  • Ciao,

    la CurrentCulture è corretta, ho provato anche ad impostarla a CultureInfo.InvariantCulture ma nulla.

    Spulciando il codice VB6 con lo sviluppatore, abbiamo identificato il punto in cui si verifica l'errore: non riesce a restituire un percorso del file di configurazione (da cui legge la formattazione delle date), ed utilizza l'api di Windows "GetEnvironmentVariable".

    Sto cercando di capire se esiste qualche incompatibilità tra WCF e le chiamate API di VB6.

    martedì 12 novembre 2019 11:40
  • Da quello che hai detto probabilmente la variabile ambiente non è definita per l'utente su cui gira il servizio.

    Puoi provare ad impostare la variabile d'ambiente con SetEnvironmentVariable oppure impostarla nelle proprietà avanzate del tuo pc nella sezione di sistema.

     
    martedì 12 novembre 2019 15:27