【问题标题】:Delphi 7 CGI web service global parameterDelphi 7 CGI web 服务全局参数
【发布时间】:2012-08-17 18:00:45
【问题描述】:
我需要在我的 Delphi CGI Web 服务的 Web 模块中设置一个全局参数,以便我可以在请求的整个生命周期中将其用作唯一标识符 (traceId) 以进行日志记录。唯一标识符需要在 Web 模块中生成,因为我首先记录的是接收到的原始 XML。然后,我在我的实际 Web 服务方法中记录各种调试信息,我需要 Id 将这些信息联系在一起。
我想不出办法来做到这一点。在我的 Web 服务方法中无法访问实际的 Web 模块,任何尝试都会引发访问冲突。我可能以完全错误的方式这样做,但我可以想到另一种解决方案。
有什么想法吗?
【问题讨论】:
标签:
web-services
delphi
cgi
global-variables
delphi-7
【解决方案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;