我需要在我的Delphi CGI webservice的Webmodule中设置一个全局参数,这样我就可以在请求的整个生命周期中使用它作为唯一标识符(traceId)用于日志记录。唯一标识符需要在Webmodule中生成,因为我记录的第一件事是接收到的原始XML。然后,我在实际的web服务方法中记录所有类型的调试信息,并且我需要Id将这些信息联系在一起。
我想不出一个办法来解决这个问题。实际的Webmodule在我的webservice方法中是不可访问的,任何尝试都会抛出访问冲突。我可能用完全错误的方式来做这件事,但我能想到另一种解决方案。
有什么想法吗?
发布于 2012-08-17 16:41:03
假设您正在谈论SOAP web服务,您可以使用GetSOAPWebModule从您的服务方法中获取对web模块的引用。
示例:
uses
WebBrokerSOAP, MyWebModuleUnit;
procedure TMyService.MyMethod;
var
MyWebModule: TMyWebModule;
TraceID: Integer;
begin
MyWebModule := GetSOAPWebModule as TMyWebModule;
TraceID := MyWebModule.TraceID;
end;https://stackoverflow.com/questions/12001941
复制相似问题