2

我有一个在 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
4

1 回答 1

0

Mobrule,您的评论启发了我们。使用普通 Perl 解释器和 ISAPI 的相对路径是不同的。

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

谢谢您的帮助!

于 2010-01-19T23:23:39.370 回答