ISAPI无法找到“use lib”目录中包含的Perl XS

时间:2010-01-14 20:01:46

标签: perl iis isapi

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

1 个答案:

答案 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.

感谢您的帮助!