我使用池化的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中挂起。我尝试了那里提到的补救措施,但他们没有帮助。
如果我不使用池化连接,应用程序不会挂起。
有什么建议吗?
谢谢,
史蒂夫克莱默答案 0 :(得分:0)
似乎您必须在OnTerminate事件中调用“ FDManager.Close”: https://mathiaspannier.wordpress.com/2016/07/17/how-to-properly-cleanupshutdown-a-delphi-isapi-which-uses-threads/