Domanda

già chiesto alla Borsa di Male, ma come sempre che era nessun aiuto. Sto avendo questo problema oggi:

Quando si crea un'applicazione web stand-alone utilizzando IntraWeb, ottengo questa eccezione in IDE quando provo a testare una sessione da mia app nel browser:

  

Prima eccezione possibilità a $ 7C812A6B.   classe di eccezione EOleSysError con   messaggio 'CoInitialize non è stato   chiamato'. processo WebContactManager.exe   (1112)

Se faccio clic su "Continua" nella finestra di dialogo eccezione IDE, il browser si mostra solo:

  

200 OK

... piuttosto che i controlli sulla mia forma principale.

Questo errore non sembra verificarsi quando sostituisco ADO con altri componenti database come dbExpress o BDE.

Che cosa è questo errore mi dice, e come posso risolvere il problema?

(Nota sto usando il magazzino "VCL per il Web" componenti IntraWeb che vengono built-in con D2007).

Grazie in anticipo per qualsiasi aiuto!

È stato utile?

Soluzione

La "soluzione" fornite in il link citato è fondamentalmente sbagliato o almeno incompleta. Solo impostando ServerController.ComInitialization a ciMultiThreaded true IW si gurantee che tutti filo otterrà COM inizializzato correttamente. (Per esempio pensare di callback Ajax)

Se si crea la propria connessione personalizzati allora si dovrà chiamare CoInitialize per quel filo da soli anche se -. Come Intraweb non conosce le discussioni che personalizzati

Altri suggerimenti

Appena trovato una risposta a questo qui :

  

Ho trovato una soluzione più elegante come il   Tutto il problema ha avuto origine da utilizzare   Intraweb, io invece arrivare a intraweb   inizializzare COM per me. Questo lo ordina   ben fuori.

     

Quando si utilizza il DbExpress MS SQL   conducente o il driver ADO con Intraweb,   è necessario impostare il ComInitialization   proprietà nel ServerController a   ‘CiMultiThreaded’.

     

Questo elimina il "CoInitialize   Non è stato definito" errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top