2015-12-19 1 views
0

J'essaie d'exécuter ActivePerl à partir d'une application Web Azure. J'ai installé tous les fichiers nécessaires et peut l'exécuter à partir de la ligne de commande.Azure Erreur FastCgiModule: l'adresse du bloc de contrôle du stockage n'est pas valide

Je peux voir la sortie pour le script test.pl de la ligne de commande comme suit

D:\home\site\wwwroot\bin\perl\bin\perl.exe D:\home\site\wwwroot\test.pl 

Ce produit juste ce texte:

Content-type: text/html\n\n 
Hello, World! 

Cependant quand j'ajoute un gestionnaire dans ma demande Paramètres pour exécuter les fichiers * .pl avec un chemin de processeur de

D: \ home \ site \ wwwroot \ bin \ perl \ bin \ perl.exe (ie le même fichier que j'ai exécuté à partir de la ligne de commande)

Je reçois l'erreur FastCgiModule suivante: L'adresse du bloc de contrôle de stockage n'est pas valide. (0x9)

Je pense que c'est une erreur d'autorisations, mais pourquoi fonctionne-t-il à partir de la ligne de commande et non lors de l'exécution de l'application Web. Courent-ils sous différents comptes?

Répondre

0

Si votre script s'exécute à partir de la ligne de commande mais pas à partir de l'application Web ou d'IIS, cela signifie que la partie CGI ne fonctionne pas. Mon problème est que j'avais pas installé FCGI

Cette page explique tout: http://search.cpan.org/~cosmicnet/FCGI-IIS-0.05/lib/FCGI/IIS.pm

Fondamentalement, vous devez exécuter « ppm installer FCGI-IIS » à partir de la ligne de commande (sur le PC que vous copiez les fichiers à partir de inclure dans l'application Web, PAS l'application Web que vous ne pouvez pas).

Ajoutez ensuite comme argument de gestionnaire pour votre * gestionnaire .pl: -MFCGI :: IIS = faire

Si cela ne fonctionne pas exécuter ce à partir de votre application web ligne de commande et voir ce que l'erreur est: D: \ home \ site \ wwwroot \ bin \ perl \ bin \ perl.exe -MFCGI :: IIS = faire test.pl

Les journaux de l'application web sont plutôt inutiles, il vaut mieux les exécuter depuis la ligne de commande si vous pouvez voir l'erreur.

0

Si votre script a été exécuté comme un script CGI,

Content-type: text/html\n\n 
Hello, World! 

devrait être

Content-type: text/html 

Hello, World! 

Mais vous avez mentionné FastCGI, de sorte que votre script est probablement beaucoup plus cassé que cela. Je ne pense pas que vous communiquiez en utilisant le protocole Fast CGI. Avez-vous utilisé FCGI?

+0

C'est juste comme je l'ai écrit. Le code ressemble à ceci: print "Content-type: text/html", "\ n \ n"; print "Bonjour, monde! \ n"; –

+0

J'utilise une application Web, donc les détails de mise en œuvre, comme si elle utilise FCGI ne sont pas vraiment exposés. Mais c'est ce que le message d'erreur dit, il doit être, IIS utilise certainement FastCGI pour Perl et PHP, donc ce n'est pas une surprise pour moi que l'application web fait comme c'est essentiellement un emballage pour IIIS. –