我的WCF服务,用.NET 4.0编写,存在第二个或任何其他调用卡住的问题。 WCF服务除了调用用Delphi XE编写的COM对象之外别无其他。线程模型设置为Both,服务的InstanceContextMode设置为PerCall。该对象并不比BSTR DoRequest(BSTR请求)多得多。 我使用Marshal.ReleaseComObject,但在文章中读到这不是清理com对象的好方法;我也没试过。
我尝试了以下事项:
COM DLL为32位,因此我的VStudio项目设置限制为x86。我在Windows 2008 R2上运行。也许这很重要:Delphi COM对象加载一个C ++ DLL,它可能不是特技。
我使用Reflector + Dennis Bauer FileDisassembler来反编译生成的COM Wrapper。我没有看到任何特别之处。
使用Windebug似乎不是很容易,因为Delphi不支持PDB文件。
用尽了想法,请帮忙: - )
答案 0 :(得分:2)
我在delphi代码中围绕对第三方dll的所有调用添加了一个关键部分。 看起来它现在正在运作。这并不能解释com对象的行为,但现在它似乎有效。