2

Windows Server 2003 の Apache と IIS6 の両方で実行される Perl Web アプリケーションがあります。Apache では、このスクリプトは問題なく動作します。ISAPI を使用する IIS で、次のエラー メッセージが表示されます。

ソフトウェア エラー:
モジュール Sub::Name の 'lib/auto/Sub/Name/Name.dll' を読み込めません: load_file:指定されたモジュールが C:/Perl/lib/DynaLoader.pm 行 230 で見つかりませんでした。 lib/DBIx/Class/Schema.pm の 10 行目 lib/DBIx/Class/Schema.pm の 10 行
目の require でコンパイルが失敗しました。

BEGIN failed--lib/DBIx/Class/Schema.pm 行 10 で
コンパイルが中止されました。(eval 39) 行 3 で、コンパイルが require で失敗しました。 ...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
4

1 に答える 1

0

Mobrule、あなたのコメントは私たちを啓発しました。バニラの Perl インタープリターと ISAPI を使用する場合、相対パスが異なっていました。

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

助けてくれてありがとう!

于 2010-01-19T23:23:39.370 に答える