我花了几周的谷歌搜索并尝试对代码进行各种更改。我甚至尝试将日志文件放在SOAP服务器中,但代码中没有发现错误。
我有一个用delphi XE编写的SOAP服务器。它很直接。接口只有一个功能
type
{ Invokable interfaces must derive from IInvokable }
IIirate = interface(IInvokable)
['{153E0531-5EAB-49E3-B824-62447AF6F0A9}']
{ Methods of Invokable interface must not use the default }
{ calling convention; stdcall is recommended }
Function ProcessRequest(Request: TSOAPAttachment): TSOAPAttachment; stdcall;
end;
我有一个启用了代理功能的客户端。只有当他登录到我的SOAP服务器时才会挂起,除非我回收IIS应用程序池,否则没有其他人可以访问服务器。但我可以看到soap附件缓存文件不断进入服务器。 有趣的是,如果我在接口单元中注释掉ProcessRequest函数,则会出现同样的情况。
答案 0 :(得分:0)
您可以尝试soapUI对您的服务器(https://www.soapui.org/)进行测试,以消除客户端应用程序正在执行某些操作使其挂起的可能性。 但是,一个客户端实际上应该无法使其挂起。您的SOAP服务器使用的线程模型是多线程的吗?该链接包含有关COM多线程https://docs.microsoft.com/en-us/windows/win32/com/choosing-the-threading-model
的信息