![]() |
MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
Hallo alle zusammen,
ich habe bei euch schon oft helfende Informationen gefunden, aber jetzt muss ich doch aktiv fragen: Ich habe vor Daten zwischen einem Delphi-Programm (exe) und einem Webservermodul (dll fürn iis) auszutauschen. Ich habe MMF ausgewählt, nur leider hänge ich hier schon beim ausprobieren fest. Zusammengeklauter Code zum Initialisiren in IIS-Modul:
Delphi-Quellcode:
Definitionen:
procedure TWebModule1.WebModuleCreate(Sender: TObject);
begin //MapFile erstellen falls noch nicht vorhanden MapHandle:= CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,Sizeof(TData),MapName); If MapHandle > 0 then Begin //Auf den Speicherbereich zugreifen PData := MapViewOfFile(MapHandle,FILE_MAP_ALL_ACCESS,0,0,0); else Begin raise exception.create('Mapfile konnte nicht geöffnet werden.'); End; End else begin raise exception.Create('Mapfile konnte nicht erstellt werden.'); end; end;
Delphi-Quellcode:
Aufruf:
Const MapName = 'Austausch';
Type TData = Packed Record Ready : Boolean; Data2 : String[20]; End; PTData = ^TData; ... private MapHandle: THandle; PData: PTData;
Delphi-Quellcode:
Destroy:
response.Content:=pdata.Data2;
Delphi-Quellcode:
UnMapViewOfFile(PData);
CloseHandle(MapHandle); Nun habe ich noch das Programm, welches (eigentlich) in diese MMF schreiben soll (änderung bei aufruf: PData.Data2 := Edit1.Text;). Wenn ich das Programm mehrfach starte klappt (zwischen den programmen) alles, mit dem Webservermodul auch (also, wenn ich statt Programm die DLL mehrfach lade). Sobald ich die DLL ausführen lasse und (unter dem Adminstratorkonto) das Programm starte bekomme ich die Meldung "'Mapfile konnte nicht erstellt werden.'" Ich kann mir nicht helfen - wisst ihr weiter?? mfg Lucas |
Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
Hast du mal geschaut, warum es nicht geht? (bzw. was sagt GetLastError)
|
Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
Hallo,
ich wüsste ja selber gerne, warum es nicht funktioniert... Die Funktion gibt 0 zurück (ich rufe sie nach onCreate auf) Ich hab noch nie mit MMF's gearbeitet und will Daten aus einem Laufenden Programm heraus im Web anzeigen. Weiß keiner weiter?? mfg Lucas |
Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
ja, bei Fehler gibt diese Funktion eine 0 zurück
und der Fehlercode wird per SetLastError gespeichert ... läßt sich also bei einem Fehler über GetLastError abrufen
Delphi-Quellcode:
GetLastError gibt den letzen Fehlercode zurück
procedure TWebModule1.WebModuleCreate(Sender: TObject);
begin //MapFile erstellen falls noch nicht vorhanden MapHandle:= CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,Sizeof(TData),MapName); If MapHandle > 0 then begin ... end else Raise exception.Create('Mapfile konnte nicht erstellt werden.'#10#10 + SysErrorMessage(GetLastError)); end; und SysErrorMessage wandelt diesen in einen String um. |
Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
so kommt "Access is denied" raus...
|
Re: MMF und IIS (ISAPI) - Mapfile kann nicht erstellt werden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz