使用ADO在IntraWeb上初始化错误

Jam*_*amo 3 delphi ado intraweb

已经在Evil Exchange上被问过,但一如既往没有帮助.我今天遇到这个问题:

使用IntraWeb创建独立Web应用程序时,当我尝试在浏览器中测试我的应用程序中的会话时,我在IDE中遇到此异常:

$ 7C812A6B的首次机会异常.消息'CoInitialize尚未被调用'的异常类EOleSysError.处理WebContactManager.exe(1112)

如果我在IDE异常对话框中单击"继续",浏览器本身就会显示:

200好的

...而不是我主表单上的控件.

当我将ADO替换为其他数据库组件(如dbExpress或BDE)时,似乎不会发生此错误.

这个错误告诉我什么,我该如何解决?

(注意我使用的是"VCL for the Web"IntraWeb组件,内置于D2007).

在此先感谢您的帮助!

Ola*_*ien 9

您引用的链接中提供的"解决方案" 基本上是错误的或至少是不完整的.只有将ServerController.ComInitialization设置为ciMultiThreaded为true,IW才会保证每个线程都能正确初始化COM.(例如考虑Ajax回调)

如果您创建自己的自定义线程,那么您必须自己为该线程调用CoInitialize - 因为Intraweb不知道您的自定义线程.