我使用 FireDAC 连接池在 Delphi XE10 中编写了一个 ISAPI 模块。在单元的最终确定部分,我有代码:
Finalization
FDManager.Close;
应用程序在 FDManger.Close 行卡住。
我有专业的 Delphi 版本,它不包含 FireDAC 的源代码,所以我不明白为什么它会卡住,但无论什么原因,它都会阻止 IIS 关闭。
我找到了这个页面
http://docwiki.embarcadero.com/RADStudio/Seattle/en/DLL_Development_(FireDAC)
其中包含一个名为FireDAC DLL Unloading的部分,其中提到FireDAC可以卡在DLL中。我尝试了那里提到的补救措施,但没有帮助。
如果我不使用池连接,应用程序不会挂起。
有什么建议吗?
谢谢
史蒂夫·克莱默
最佳答案
看来您必须在 OnTerminate 事件中调用“FDManager.Close”: https://mathiaspannier.wordpress.com/2016/07/17/how-to-properly-cleanupshutdown-a-delphi-isapi-which-uses-threads/
关于Delphi FireDAC 卡在 ISAPI 模块 (bpl) 上,并使用池连接完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38418183/