2017-03-18 28 views
4

TWebModuleプロシージャ/関数現在の要求はどのように取得されますか?Delphi TWebModule(IIS-ISAPI):現在の要求を取得する方法

私が試してみました:

procedure TWebModule1.DoSomething; 
var 
    aRequest : TWebRequest; 
begin 
    aRequest := Request; 
end; 
を、それは TWebModule作成時に生成された第1の要求と思われます。

私は、それぞれのTWebActionItemから後続の手続き/関数にリクエストを渡すことができると知っていますが、私はリクエストをどこに渡すことも避けたいと思います。任意のヒント?

更新

コードに掘り後、私はWebContextを発見し、それは、溶液、例えば:

uses Web.WebCntxt; 

procedure TWebModule1.DoSomething; 
var 
    aRequest : TWebRequest; 
begin 
    if WebContext <> nil then 
    aRequest := WebContext.Request; 
end; 

それが正しい方法であると思われますか? WebContextは常にnilと思われます。

私はすべての要求がTWebModule.Actionsで定義されたTWebActionItemを通過デルファイベルリンの更新に2

答えて

3

です。 TWebActionItemには、イベントOnActionがあります。ここで、現在のリクエストのTWebRequestオブジェクトが取得されます。

その後、後続の手続き/関数に渡すことができます。

+0

はい、しかし、私はすべての要求が別のスレッドで処理されると思うので、どこでも要求を渡すのを避けたいと思います。 –

+1

スレッドの競合を避けるために渡す必要があります。クラスフィールドとして保存することもできます。しかし、マルチスレッドを処理する必要があります。 – Andreas

+0

SOAPやDatasnapのようなスレッドバーにすることができます。 –

関連する問題