我有一个在Windows Server 2003上的Apache和IIS6上都运行的Perl Web应用程序。在Apache上,这个脚本运行得很好。在使用ISAPI的IIS中,我收到以下错误消息:
软件错误:
无法加载 'lib / auto / Sub / Name / Name.dll'for module Sub :: Name:load_file:The 无法找到指定的模块 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失败了 - 编译中止了 我的/ Schema.pm第2行。编译 在......的要求失败了。
在IIS中不使用ISAPI时运行正常。我们希望在IIS环境中继续使用ISAPI。为什么它不能找到这个模块,即使它在运行普通的Perl时也能找到?
编辑:
我们用相对路径来称呼它。
use lib qw{My lib}; # line in question
use My::Schema; # explodes
答案 0 :(得分:0)
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.
感谢您的帮助!