Finding out the physical path of an ISAPI dll

2019-03-20 23:00发布

问题:

I'm converting a Delphi ISAPI dll to work better on IIS 7.0 and 7.5. The ISAPI used to read its configuration from the registry but I wanted to convert that to using the web.config file in the same folder.

It worked fine with CGI but the ISAPI is another matter. I'm using GetModuleFileName to get the path of the module and, of course, it's giving me back the path of the IIS worker process (C:\Windows\SysWOW64\inetsrv).

Is there a way to get the physical path of the ISAPI dll itself ?

回答1:

I'm using this function and works great.

function GetDllName: string;
var
  pName: PChar;
begin
  GetMem(pName, 200);
  windows.GetModuleFileName(HInstance, pName, 200);
  Result := string(pName);
  FreeMem(pName);
end;