Perl XS 包含在“使用库”中; ISAPI 找不到目录

发布于 2024-08-18 06:19:34 字数 795 浏览 4 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓦然回首 2024-08-25 06:19:35

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

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

感谢您的帮助!

Mobrule, your comment enlightened us. The relative path was different between using the vanilla Perl interpreter and ISAPI.

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

Thanks for the help!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文