Perl XS 包含在“使用库”中; ISAPI 找不到目录
我有一个 Perl Web 应用程序,可以在 Windows Server 2003 上的 Apache 和 IIS6 上运行。在 Apache 上,这个脚本运行得很好。在使用 ISAPI 的 IIS 中,我收到以下错误消息:
软件错误:
无法加载 'lib/auto/Sub/Name/Name.dll' 为 模块子::名称: load_file:The 找不到指定的模块 C:/Perl/lib/DynaLoader.pm 第 230 行。 在 lib/DBIx/Class/Schema.pm 第 10 行
require 时编译失败 lib/DBIx/Class/Schema.pm 第 10 行。BEGIN 失败——编译中止于 lib/DBIx/Class/Schema.pm 第 10 行。
require at (eval) 时编译失败 39) 第 3 行. ...传播于 C:/Perl/lib/CGI/Carp.pm 第 314 行。
BEGIN 失败——编译中止于 My/Schema.pm 第 2 行. 编译 要求失败...
当不在 IIS 中使用 ISAPI 时,它运行良好。我们更愿意继续在 IIS 环境中使用 ISAPI。为什么它找不到这个模块,即使在运行普通 Perl 时它可以找到?
编辑:
我们用相对路径来调用它。
use lib qw{My lib}; # line in question
use My::Schema; # explodes
I have a Perl web application that runs on both Apache and IIS6 on Windows Server 2003. On Apache this script works just fine. In IIS using ISAPI, I am getting the following error message:
Software error:
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.
at lib/DBIx/Class/Schema.pm line 10
Compilation failed in require at
lib/DBIx/Class/Schema.pm line 10.BEGIN failed--compilation aborted at
lib/DBIx/Class/Schema.pm line 10.
Compilation failed in require at (eval
39) line 3. ...propagated at
C:/Perl/lib/CGI/Carp.pm line 314.
BEGIN failed--compilation aborted at
My/Schema.pm line 2. Compilation
failed in require at...
When NOT using ISAPI in IIS it runs fine. We would prefer to continue using ISAPI in our IIS environments. Why can't it find this module, even though it does when running normal Perl?
EDIT:
We were calling it with relative paths.
use lib qw{My lib}; # line in question
use My::Schema; # explodes
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Mobrule,您的评论启发了我们。使用普通 Perl 解释器和 ISAPI 之间的相对路径是不同的。
感谢您的帮助!
Mobrule, your comment enlightened us. The relative path was different between using the vanilla Perl interpreter and ISAPI.
Thanks for the help!