Ape*_*mud 5 delphi delphi-7 delphi-2009 delphi-xe delphi-xe2
我花了几个星期的时间来搜索并尝试对代码进行各种更改。我什至尝试将日志文件放入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;
Run Code Online (Sandbox Code Playgroud)
我有一个启用代理的个人计算机客户端。只有当他登录到我的SOAP服务器时,它才会挂起,除非我回收IIS应用程序池,否则没有其他人可以访问该服务器。但是我可以看到肥皂附件缓存文件不断进入服务器。有趣的是,如果我在接口单元中注释掉ProcessRequest函数,则会出现相同的情况。
您可以尝试使用soapUI对您的服务器(https://www.soapui.org/)进行测试,以消除客户端应用程序正在执行导致其挂起的操作的可能性。然而,一个客户端不应该真正能够让它挂起。您的 SOAP 服务器使用的线程模型是多线程模型吗?该链接包含有关 COM 多线程的信息https://learn.microsoft.com/en-us/windows/win32/com/choosing-the-threading-model