ISAPI 无法找到“使用库”目录中包含的 Perl XS

ISAPI 无法找到“使用库”目录中包含的 Perl XS

我有一个 Perl Web 应用程序,可在 Windows Server 2003 上的 Apache 和 IIS6 上运行。在 Apache 上,此脚本运行良好。在使用 ISAPI 的 IIS 中,我收到以下错误消息:

软件错误:
无法为模块 Sub::Name 加载‘lib/auto/Sub/Name/Name.dll’:load_file:在 C:/Perl/lib/DynaLoader.pm 第 230 行找不到指定的模块。在 lib/DBIx/Class/Schema.pm 第 10 行,
在 lib/DBIx/Class/Schema.pm 第 10 行需要时编译失败。

BEGIN 失败 - 编译在 lib/DBIx/Class/Schema.pm 第 10 行中止。
编译在 require (eval 39) 第 3 行失败。...传播到 C:/Perl/lib/CGI/Carp.pm 第 314 行
。BEGIN 失败 - 编译在 My/Schema.pm 第 2 行中止。编译在 require 处失败...

当在 IIS 中不使用 ISAPI 时,它运行良好。我们更愿意继续在 IIS 环境中使用 ISAPI。为什么它找不到这个模块,即使在运行普通 Perl 时可以找到它?

编辑:

我们用相对路径来调用它。

use lib qw{My lib};  # line in question
use My::Schema; # explodes

答案1

stack overflow 上的 Mobrule 给了我们一个启发性的评论。使用 vanilla Perl 解释器和 ISAPI 时,相对路径是不同的。

use lib qw{My /Inetpub/wwwroot/cgi/lib};  # a little more specific...
use My::Schema;  # not nearly as much dying now.

谢谢您的帮助!

相关内容