我有一个在 Windows Server 2003 上的 Apache 和 IIS6 上运行的 Perl Web 应用程序。在 Apache 上,这个脚本工作得很好。在使用 ISAPI 的 IIS 中,我收到以下错误消息:
软件错误:
Can't load 'lib/auto/Sub/Name/Name.dll' for module Sub::Name: load_file: The specified module could not be found at C:/Perl/lib/DynaLoader.pm line 230.在 lib/DBIx/Class/Schema.pm 第 10 行
编译在 lib/DBIx/Class/Schema.pm 第 10 行的要求中失败。BEGIN failed - 编译在 lib/DBIx/Class/Schema.pm 第 10 行中止。
在 (eval 39) 第 3 行的 require 中编译失败。 ...在 C:/Perl/lib/CGI/Carp.pm 第 314 行传播.
BEGIN failed--compilation aborted at My/Schema.pm line 2. Compilation failed in require at...
当不在 IIS 中使用 ISAPI 时,它运行良好。我们更愿意在我们的 IIS 环境中继续使用 ISAPI。为什么它不能找到这个模块,即使它在运行普通 Perl 时也能找到?
编辑:
我们用相对路径来调用它。
use lib qw{My lib}; # line in question
use My::Schema; # explodes
Mobrule 在堆栈溢出时给了我们一个启发性的评论。使用普通 Perl 解释器和 ISAPI 的相对路径是不同的。
谢谢您的帮助!