我有一個在Windows Server 2003的Apache和IIS6上運行的Perl Web應用程序。在Apache上,此腳本工作得很好。在使用ISAPI的IIS中,我收到以下錯誤消息:ISAPI無法找到包含在「use lib」目錄中的Perl XS
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...
在IIS中不使用ISAPI時,它運行良好。我們希望在我們的IIS環境中繼續使用ISAPI。爲什麼它不能找到這個模塊,儘管它在運行普通的Perl時可以使用?
編輯:
我們用相對路徑調用它。
use lib qw{My lib}; # line in question
use My::Schema; # explodes
兩個環境中的@ @ INC是否有所不同? – Ether
順便說一下,問題標題暗示你明確正在'使用lib ...',但是你沒有在正文中提到這一點。你能否包含相關代碼('use lib'指令,以及試圖加載正在被炸燬的模塊的'use'行)? – Ether
特別是,使用ISAPI可能會改變Perl的默認目錄 - http://www.serverwatch.com/tutorials/article.php/10825_1407921_5/ISAPI-Perl-Primer.htm。你用相對路徑還是絕對路徑調用'use lib'? – mob