Обработка Perl IIS 7.5 - PullRequest
       88

Обработка Perl IIS 7.5

2 голосов
/ 23 января 2012

У меня есть проект, написанный на классическом asp, и отправка определенной формы обрабатывается скриптом Perl.

Я собираюсь сделать улучшение для этого проекта. Я установил последнюю версию ActivePerl для Windows 32 бит.

Я посмотрел на производственную среду и увидел, что в IIS 7.5 есть запись "Отображения обработчиков" для *.pl, которая должна обрабатываться C:\Perl\bin\PerlEx30.dll. Так что я сделал то же самое в среде разработки. (обратите внимание, что в среде Prod. нет сопоставления для "* .cgi")

Теперь, когда я пытаюсь отправить форму, действие которой равно MyScript.pl, я получаю следующую ошибку:

HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.

Возможно, стоит сказать, что я нахожусь в 64-битной среде, я пробовал ActivePerl для 64-битной Windows также (я сопоставил *.pl с perl514.dll), но все еще получаю ту же ошибку!

Ответы [ 3 ]

4 голосов
/ 11 апреля 2014

Ваш обходной путь - использовать 32-битную версию perl. Если вы хотите использовать 64-разрядную версию, это работает для меня на IIS 8.5 Windows 2012 R2:

  1. Добавить модуль сопоставления на свой сайт:
  2. Путь запроса: * .pl
  3. Модуль: CgiModule
  4. Исполняемый файл: C: \ Perl64 \ bin \ perl.exe "% s"% s
  5. Имя: Perl CGI

Вы можете проверить это, создав следующую страницу «Привет, мир»:

use strict;
use CGI;

my $page = new CGI;
my $msg = "Hello from ActivePerl CGI!";

print $page->header( "text/html" ),$page->start_html( $msg );
print $page->h2($msg);
print $page->end_html;

Назовите его как-то как test.pl, поместите его в каталог webroot и перейдите к нему для тестирования.

3 голосов
/ 24 января 2012

Пул приложений был установлен так: "Enable 32-Bit Applications = false", я изменяю его на true, и это устраняет проблему.

2 голосов
/ 23 января 2012

Вы еще не сказали, получили ли вы или нет ЛЮБОЙ Perl для работы (даже "привет мир"), или проблема в этом конкретном скрипте (возможно, только в этом конкретный сервер).

ЛЮБОЙ -

  1. Я сомневаюсь, что проблема в вашей установке Perl.

  2. Вам определенно нужно больше устранить неполадки.

  3. Я бы начал с проверки работоспособности простого однострочного "привет мира".

  4. Затем я бы «разделил и победил», чтобы точно определить ГДЕ проблема в том. Я предполагаю, что это очень вероятно где-то в «MyScript.pl». Я также предполагаю, что это должно быть довольно легко отследить.

  5. Эти ссылки могут помочь вам получить больше подсказок о том, что именно вы можете искать при «разделяй и властвуй» (ПОСЛЕ того, как вы убедились, что сам Perl может быть вызван из вашего IIS):

PS: Я предполагаю, что проблема может быть такой же простой, как отсутствующий или неуместный URL в «MyScript.pl»!

PPS: С риском повторения - сначала проверьте «helo_world.pl». Если он не работает, пожалуйста, опубликуйте полный сценарий "hello_world" и полные сообщения об ошибках.

...