Hallo Leute,
ich bin gerade dabei einen IdHttp Server in einem Windows Service zum laufen zu bekommen.
Dieser hat unter anderem die Aufgabe ein in einem MemoryStream gecachet Bild (wird beim Service Start geladen) über HTTP zur Verfügung zu stellen.
Dies funktioniert auch soweit ... aber nur beim ersten Mal. Beim zweiten Zugriff bekommt er eine
AV.
Nach ein paar Tests stelle ich fest, dass der IdHttp meinen MemoryStream frei gibt und somit beim zweiten Mal nicht mehr darauf zugegriffen werden kann.
Meine Frage jetzt: Wie kann ich ihm sagen, dass er den Stream nicht freigeben soll. Ich will nicht, dass der Service das Bild bei jedem Request von der Festplatte laden muss.
Hier der Codeabschnitt:
Delphi-Quellcode:
if ARequestInfo.Command = 'GET' then
begin
if ARequestInfo.Document = 'image.gif' then
begin
if MS_Image <> nil then
begin
AResponseInfo.ResponseNo := 200;
AResponseInfo.ContentType := 'image/gif';
AResponseInfo.ContentStream := MS_Image;
end
else
begin
AResponseInfo.ResponseNo := 404;
AResponseInfo.ContentText := 'Not Found';
end;
end;
end;