coinitialize error en IntraWeb mediante ADO
Pregunta
ya formuladas en la Bolsa mal, pero como siempre que no ayudó. Estoy teniendo este problema hoy en día:
Cuando se crea una aplicación web independiente usando IntraWeb, consigo esta excepción en el IDE cuando trato de poner a prueba una sesión desde mi aplicación en el navegador:
excepción de primera oportunidad en $ 7C812A6B. EOleSysError clase de excepción con El mensaje de CoInitialize no ha sido llamado'. WebContactManager.exe proceso (1112)
Si hago clic en "Continuar" en el diálogo excepción IDE, el propio navegador simplemente muestra:
200 OK
... en lugar de los controles en mi formulario principal.
No parece Este error se produzca cuando sustituyo ADO con otros componentes de bases de datos tales como dbexpress o BDE.
¿Qué es este error que me dice, y cómo lo arreglo?
(Nota que estoy usando la acción "VCL para la Web" IntraWeb componentes que vienen incorporados con D2007).
Gracias de antemano por cualquier y toda la ayuda!
Solución
La "solución" que figura en el enlace que citó es básicamente equivocado o al menos incompleta. Sólo mediante el establecimiento de ServerController.ComInitialization a ciMultiThreaded a cierto IW se gurantee que todos hilo obtendrá COM inicializado correctamente. (Por ejemplo, pensar en las devoluciones de llamada de Ajax)
Si crea sus propios hilos personalizados, entonces tendrá que llamar a CoInitialize para ese hilo por su cuenta sin embargo -. Intraweb que no sabe acerca de sus temas personalizados
Otros consejos
Sólo encontrado una respuesta a esta aquí :
He encontrado una solución más elegante como el problema de toda su origen en el uso Intraweb, prefiero llegar a Intraweb inicializar COM para mí. Esto se ordena a cabo muy bien.
Cuando use su dbexpress MS SQL conductor o conductor ADO con Intraweb, debe establecer el ComInitialization propiedad en el ServerController a ‘CiMultiThreaded’.
Esto elimina la "CoInitialize No se ha denominado" error.