Delphi Datasnap Server Memory Leak mit TFileStream als Rückgabewert

Ich benötige eine Funktion in einem Datasnap-Server, der eine .zip-Datei zurückgibt. Also habe ich angefangen mit:

function TGetData.getZip (): TFileStream;
begin
   result := TFileStream.Create('test.zip', fmOpenRead and fmShareDenyWrite);
end

Dies funktioniert gut, aber datasnap gibt es nicht frei, so dass ich einen Speicherleckfehler erhalte.

Nächster Versuch: Ich habe bei "TWebModule1.WebModuleAfterDispatch" angefangen. Ich dachte, es könnte helfen, meine Antwort mit "response.SendResponse;" zu senden. und befreie meinen Stream alleine. Also hier eine kurze Version:

procedure TWebModule1.WebModuleAfterDispatch(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
   test : TFileStream;
begin
   response.ContentType := 'application/x-zip-compressed';
   test := TFileStream.Create('test.zip', fmOpenRead);
   response.ContentStream := test;
   response.CustomHeaders.Values['Content-Disposition'] := 'attachment; filename=test12.zip';
   response.SendResponse; //Also sendStream didn't help
   test.Free;
end;

Dies ist fast die Lösung, aber der datasnap-Server sendet HTML-Code, nachdem mein Stream gesendet wurde, und dieser wird am Ende der Datei geschrieben.

Ich weiß, der datasnap-Server unterstützt TFileStream nicht. Stattdessen sollte ich TDBXStreamValue verwenden, aber es scheint kein funktionierendes Beispiel zu geben ...

Hat jemand Erfahrung mit einem solchen Problem?