J'ai une application Web Perl qui s'exécute à la fois sur Apache et IIS6 sur Windows Server 2003. Sous Apache, ce script fonctionne parfaitement. Dans IIS utilisant ISAPI, le message d'erreur suivant s'affiche:
Erreur logicielle:
Ne peut pas charger "lib / auto / Sub / Name / Name.dll" pour module Sub :: Nom: fichier_chargement: Le module spécifié n'a pas pu être trouvé à C: /Perl/lib/DynaLoader.pm ligne 230. à lib / DBIx / Class / Schema.pm ligne 10
La compilation a échoué dans require at lib / DBIx / Class / Schema.pm ligne 10.BEGIN failed - compilation annulée à lib / DBIx / Class / Schema.pm ligne 10.
La compilation a échoué dans require at (eval 39) ligne 3. ... propagé à C: /Perl/lib/CGI/Carp.pm ligne 314.
BEGIN failed - compilation annulée à Ma / Schema.pm ligne 2. Compilation échoué dans besoin à ...
Lorsque vous n'utilisez pas ISAPI dans IIS, tout fonctionne correctement. Nous préférerions continuer à utiliser ISAPI dans nos environnements IIS. Pourquoi ne parvient-il pas à trouver ce module, même s’il le fait lorsqu’il utilise Perl normal?
MODIFIER:
Nous l'appelions avec des chemins relatifs.
use lib qw{My lib}; # line in question
use My::Schema; # explodes
Réponses:
0 pour la réponse № 1Mobrule, ton commentaire nous a éclairés. Le chemin relatif était différent entre l’interpréteur vanille Perl et ISAPI.
use lib qw{My /Inetpub/wwwroot/cgi/lib}; # a little more specific...
use My::Schema; # not nearly as much dying now.
Merci pour l'aide!