1

我有一个用 Delphi 编写的 ISAPI 应用程序。该应用程序是使用运行时包编译的。基本上,所有相关的 bpls 都应该部署到启用 ISAPI 的目录,以使 ISAPI dll 正常工作。但是,我在调用 ISAPI dll 时总是会遇到错误。

如果我的 ISAPI dll 不能使用运行时包编译,那么它可以正常工作。

运行时包应该是问题的原因。到目前为止,我唯一的解决方案是将运行时包路径添加到系统环境变量:%path% 并重新启动 PC。

通过不更改环境变量是否有其他可用的解决方案?

我正在使用 Windows 7 和 IIS 7 以及 Delphi 2010。

4

3 回答 3

1

对于 ISAPI DLL 和运行时 bpl 位于同一目录中的情况,请检查您的 ISAPI DLL 和运行时 .bpl 文件的文件权限,并确保 Internet 访客帐户对它们具有读取和执行权限。

于 2009-11-05T15:32:39.883 回答
0

您是否尝试将 .bpl 文件放在 ISAPI dll 所在的目录中?

如果这不起作用,则为您的 ISAPI 创建安装程序,此安装程序应将所有需要的 .bpl 文件复制到 Windows 系统目录(您可以使用GetSystemDirectory()API 函数获取它,通常是<WindowsDir>\system32)。对于 InnoSetup,这是{sys}文件目标。

于 2009-11-05T13:29:40.810 回答
0

BPL 文件必须位于机器的系统路径或可执行文件的目录中(在这种情况下,我认为是 svchost.exe?)。现在,有趣的部分。当每个应用程序启动时,它会抓取当时环境的快照。如果添加到路径,则必须重新启动机器以使其处于活动状态,或者重新启动应用程序(在这种情况下涉及重新启动操作系统)。

于 2009-11-05T17:11:25.717 回答