Назад | Перейти на главную страницу

Perl XS, включенный из каталога «use lib», не может быть найден ISAPI

У меня есть веб-приложение Perl, которое работает как на Apache, так и на IIS6 в Windows Server 2003. На Apache этот скрипт отлично работает. В IIS с использованием ISAPI я получаю следующее сообщение об ошибке:

Программная ошибка:
Невозможно загрузить lib / auto / Sub / Name / Name.dll для модуля Sub :: Name: load_file: указанный модуль не может быть найден в строке 230 C: /Perl/lib/DynaLoader.pm в lib / DBIx / Class / Schema.pm строка 10
Компиляция завершилась неудачно в строке 10 lib / DBIx / Class / Schema.pm.

Ошибка BEGIN - компиляция прервана в строке 10 lib / DBIx / Class / Schema.pm.
Ошибка компиляции при требовании в строке 3 (eval 39) ... распространена в строке 314 C: /Perl/lib/CGI/Carp.pm.
Ошибка BEGIN - компиляция прервана в строке 2 My / Schema.pm. Не удалось выполнить компиляцию при требовании в ...

Когда НЕ используется ISAPI в IIS, он работает нормально. Мы бы предпочли продолжать использовать ISAPI в наших средах IIS. Почему он не может найти этот модуль, даже если он находит его при запуске обычного Perl?

РЕДАКТИРОВАТЬ:

Мы называли это относительными путями.

use lib qw{My lib};  # line in question
use My::Schema; # explodes

Mobrule, обращаясь к переполнению стека, дал нам поучительный комментарий. Относительный путь отличался при использовании ванильного интерпретатора Perl и ISAPI.

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

Спасибо за помощь!