Bonjour à tous,

Je n'arrive pas à faire fonctionner le script myapp_fastcgi.pl qui est généré par Catalyst sur un environnement Windows 64bit, le serveur (que ce soit IIS7.5 ou Apache 2.4) me renvoi une erreur interne dans l'application.

Après avoir pas mal tourné, j'ai lancé le script en mode console et j'ai le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Use of uninitialized value $value in pattern match (m//) at D:/perl/site/lib/Config/General.pm line 872.
Use of uninitialized value in concatenation (.) or string at D:/perl/site/lib/Plack/Handler/FCGI.pm line 114, <DATA> line 998.
Use of uninitialized value in quotemeta at D:/perl/site/lib/Plack/Handler/FCGI.pm line 116, <DATA> line 998.
Use of uninitialized value in string eq at D:/perl/site/lib/Catalyst.pm line 2770, <DATA> line 998.
Use of uninitialized value $host in substitution (s///) at D:/perl/site/lib/Catalyst/Engine.pm line 444, <DATA> line 998.
Use of uninitialized value $host in concatenation (.) or string at D:/perl/site/lib/Catalyst/Engine.pm line 451, <DATA> line 998.
Use of uninitialized value $host in concatenation (.) or string at D:/perl/site/lib/Catalyst/Engine.pm line 459, <DATA> line 998.
Use of uninitialized value in string eq at D:/perl/site/lib/Catalyst/Action/RenderView.pm line 51, <DATA> line 998.
binmode() on unopened filehandle GEN2 at D:/perl/site/lib/Plack/Handler/FCGI.pm line 165, <DATA> line 998.
print() on unopened filehandle GEN2 at D:/perl/site/lib/Plack/Handler/FCGI.pm line 177, <DATA> line 998.
Use of uninitialized value in string eq at D:/perl/site/lib/Catalyst.pm line 1817, <DATA> line 998.
print() on unopened filehandle GEN2 at D:/perl/site/lib/Plack/Handler/FCGI.pm line 179, <DATA> line 998.
Si je ne m'inquiete pas outre mesure des erreurs d'initialisation (en mode console il manque presque tout l'environnement serveur Web), les erreurs sur le file handler GEN2 me semblent suspectes car sur un environnement Windows 32bit le même script me renvoi le résultat suivant (toujours en mode console):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<blabla>
Use of uninitialized value in string eq at D:/Perl/site/lib/Catalyst/Action/RenderView.pm line 51, <DATA> line 998.
Status: 302 Found
Location: http:///login
Content-Length: 292
Content-Type: text/html; charset=utf-8
Set-Cookie: myapp_session=1e5994a41ea40c41764c4f2c0dc45592ef4b520f; path=/;
expires=Wed, 25-Apr-2012 17:14:25 GMT; HttpOnly
X-Catalyst: 5.90011
 
Use of uninitialized value in string eq at D:/Perl/site/lib/Catalyst.pm line 1817, <DATA> line 998.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/x
html1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Moved</title>
  </head>
  <body>
     <p>This item has moved <a href="http:///login">here</a>.</p>
  </body>
</html>
Ce qui ressemble bien plus a ce que le script devrait sortir en l'absence de tout environnement serveur.

En creusant FCGI.pm, les erreurs sur le fh GEN2 semblent correspondre à un binmode et un print sur *STDOUT mais cela reste vague en l'absence de toute erreur plus précise. Rien n'explique pourquoi ce fh particulier serait clos (son nom remonte via IO:Handle donc relativement bas dans le core Perl).

Notez que:
- je ne rencontre aucune erreur avec le script myapp_cgi.pl ni avec myapp_server.pl
- j'ai la même erreur avec un Perl 32bit installé sur le serveur Windows 64bit (ActivePerl pour être précis)
- j'ai le même résultat sur Windows 7 64bit que sur Windows 2008 R2
- tous les tests ont été réalisé avec un compte admin, UAC désactivée

Je n'ai rien trouvé via Google qui pourrait correspondre à ce type d'erreur et je suis en panne d'idée. Est-ce que quelqu'un a déjà rencontré cela auparavant et trouvé une solution / piste ?