2012-01-23 3 views
1

나는 고전적인 ASP로 작성된 프로젝트를 가지고 있으며, 특정 양식의 제출은 Perl 스크립트에 의해 처리된다.처리 Perl IIS 7.5

이 프로젝트의 기능을 향상시킬 것입니다. Windows 32 비트 용 ActivePerl 최신 버전을 설치했습니다.

프로덕션 환경을 살펴보면 IIS 7.5에서 에 대한 "처리기 매핑"항목이 C:\Perl\bin\PerlEx30.dll으로 처리된다는 것을 알았습니다. 그래서 저는 개발 환경에서 똑같은 일을했습니다. 이제

(. 찌르다에 "*의가 .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 비트 환경에 있는데 Windows 용 ActivePerl도 시도했는데 (을 perl514.dll에 매핑했지만) 여전히 같은 오류가 발생했습니다!

답변

3

응용 프로그램 풀이 "Enable 32-Bit Applications = false"으로 설정되었으므로이를 true로 변경하고 문제를 해결합니다.

+0

감사합니다. 해결책을 공유해 주셔서 감사합니다! – paulsm4

2

ANY Perl이 아직 작동하지 않거나 ("안녕하세요 세상"이라도) 문제가이 특정 스크립트 (이 특정 서버에만있을 수 있음)인지 여부는 말하지 않았습니다. .

어쨌든 -

  1. 내가 펄 설치 의심의 여지가 문제입니다.

  2. 더 많은 문제를 해결해야합니다.

  3. 간단한 한 줄짜리 "hello world"가 작동하는지 확인하는 것으로 시작하겠습니다.

  4. 다음으로, 나는 "분열하고 정복"하여 정확히 을 결정합니다. 문제는입니다. 아마 "MyScript.pl"의 어딘가에있을 것 같습니다. 나는 또한 그것이 추적하기 쉽다는 것을 짐작하고있다.

PS : "MyScript.pl"에 누락되거나 부적절한 URL처럼 간단 할 수 있습니다.

PPS : 반복되는 위험이 있으므로 "helo_world.pl"을 먼저 확인하십시오. 이 없으면 완전한 "hello_world"스크립트와 완전한 오류 메시지를 게시하십시오.

+0

안녕하십니까, 안녕하세요. 안녕하세요. 안녕하세요. "HelloWorld.pl"로 폼의 동작을 변경하여 문제가 MyScript.pl에 있는지 테스트하지만 같은 결과를 얻습니다. ( – CjCoax

+0

Q : 그렇다면 다음과 같이 말합니다. a) "HelloWorld. pl ", 그것은 작동합니다. 브라우저에 "echo 'Hello World'"결과가 표시됩니까? b) 동일한 "HelloWorld.pl"에서 폼의 동작을 가리키면 동일한 "HTTP 405 invalid method (HTTP 동사)"오류가 발생한다고 말하는 것입니다. ("HelloWorld.pl"을 게시하십시오.) – paulsm4

+0

Q : 문제가 있습니까? – paulsm4

4

해결 방법은 perl의 32 비트 버전을 사용하는 것입니다. 당신이 64 비트 버전을 사용하려면,이 IIS 8.5 윈도우 2012 R2에 나를 위해 일한 :

  1. 사이트에 모듈 매핑 추가 :
  2. 요청 경로 : * .pl로
  3. 모듈 : CgiModule
  4. 실행 파일 : C : \ Perl64 빈 \를하여 Perl.exe는 "%의"%의
  5. 이름 : \ 펄 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과 같은 이름을 지정하고 웹 루트 디렉토리에 놓은 다음 테스트하여 테스트하십시오.