1

我需要在我的 Delphi CGI Web 服务的 Web 模块中设置一个全局参数,以便我可以在请求的整个生命周期中将其用作唯一标识符 (traceId) 以进行日志记录。唯一标识符需要在 Web 模块中生成,因为我首先记录的是接收到的原始 XML。然后,我在我的实际 Web 服务方法中记录各种调试信息,我需要 Id 将这些信息联系在一起。

我想不出办法来做到这一点。在我的 Web 服务方法中无法访问实际的 Web 模块,任何尝试都会引发访问冲突。我可能以完全错误的方式这样做,但我可以想到另一种解决方案。

有任何想法吗?

4

1 回答 1

1

假设您正在谈论一个 SOAP Web 服务,您可以使用GetSOAPWebModule它从您的服务方法中获取对您的 Web 模块的引用。

例子:

uses
  WebBrokerSOAP, MyWebModuleUnit;

procedure TMyService.MyMethod;
var
  MyWebModule: TMyWebModule;
  TraceID: Integer;
begin
  MyWebModule := GetSOAPWebModule as TMyWebModule;
  TraceID := MyWebModule.TraceID;
end;
于 2012-08-17T08:41:03.223 回答