5

我花了几个星期在谷歌上搜索并尝试对代码进行各种更改。我什至尝试将日志文件放在 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 应用程序池,否则没有其他人可以访问服务器。但我可以看到肥皂附件缓存文件不断进入服务器。有趣的是,如果我在接口单元中注释掉 ProcessRequest 函数,就会出现同样的情况。

4

1 回答 1

0

您可以尝试使用 soapUI 对您的服务器 ( https://www.soapui.org/ ) 进行测试,以消除客户端应用程序正在执行导致其挂起的操作的可能性。但是,一个客户端不应该真的能够让它挂起。您的 SOAP 服务器使用的线程模型是多线程模型吗?该链接包含有关 COM 多线程的信息https://docs.microsoft.com/en-us/windows/win32/com/choosing-the-threading-model

于 2019-09-06T13:26:35.480 回答