2015-12-19 5 views
0

Я пытаюсь запустить ActivePerl из веб-приложения Azure. Я установил все необходимые файлы и могу запустить его из командной строки.Ошибка Azure FastCgiModule: адрес блока управления хранилищем недействителен

Я могу просмотреть результат для сценария test.pl из командной строки следующим образом

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

Это просто выводит этот текст:

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

Однако, когда я добавить обработчик в моем приложении Настройки для запуска файлов * .pl с трактом процессора

D: \ home \ site \ wwwroot \ bin \ perl \ bin \ perl.exe (то есть тот же файл, что и я, запущенный из командной строки)

Я получаю следующую ошибку FastCgiModule: адрес блока управления хранилища недействителен. (0x9)

Я думаю, что это ошибка разрешений, но почему это работает из командной строки, а не при работе внутри веб-приложения. Они работают под разными учетными записями?

ответ

0

Если ваш сценарий запускается из командной строки, но не из веб-приложения или IIS, это означает, что часть CGI не работает. Моя проблема, я не установлен FCGI

Эта страница объясняет все: http://search.cpan.org/~cosmicnet/FCGI-IIS-0.05/lib/FCGI/IIS.pm

В принципе, вам нужно запустить «ппм установить FCGI-IIS» из командной строки (на ПК, необходимо скопировать файлы от включить в веб-приложение, а не веб-приложение, которое вы не можете).

Затем добавьте в качестве аргумента обработчика для вашего * .pl обработчика: -MFCGI :: IIS = сделать

Если это не работает, запустите это из вашей веб-командной строки приложения и посмотреть, что ошибка: D: \ home \ site \ wwwroot \ bin \ perl \ bin \ perl.exe -MFCGI :: IIS = do test.pl

Журналы веб-приложений довольно бесполезны, гораздо лучше запускать из командной строки, если вы можете видеть Ошибка.

0

Если сценарий был запущен в качестве сценария CGI,

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

должен быть

Content-type: text/html 

Hello, World! 

Но вы упомянули FastCGI, так что ваш сценарий, вероятно, гораздо более сломана, чем это. Я не думаю, что вы вообще обмениваетесь протоколом Fast CGI. Вы использовали FCGI?

+0

Это именно то, как я это написал. Код выглядит так: print «Content-type: text/html», «\ n \ n»; print "Hello, World! \ n"; –

+0

Я использую веб-приложение, поэтому любые детали реализации, такие как использование FCGI, на самом деле не отображаются. Но об этом говорит сообщение об ошибке, поэтому IIS, безусловно, использует FastCGI для Perl и PHP, поэтому мне неудивительно, что веб-приложение делает это, в основном, это оболочка для IIIS. –