【问题标题】:Handling Perl IIS 7.5处理 Perl IIS 7.5
【发布时间】:2012-02-16 12:30:24
【问题描述】:

我有一个用经典 asp 编写的项目,特定表单的提交由 Perl 脚本处理。

我将为这个项目做一个增强。我为 Windows 32 位安装了最新版本的 ActivePerl。

我查看了生产环境,发现在 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 位环境中,我也尝试了适用于 Windows 64 位的 ActivePerl(我将 *.pl 映射到 perl514.dll)但仍然遇到同样的错误!

【问题讨论】:

    标签: perl iis iis-7.5 activeperl


    【解决方案1】:

    您的解决方法是使用 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

    您可以通过创建以下“hello world”页面对其进行测试:

    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 目录并浏览到它进行测试。

    【讨论】:

      【解决方案2】:

      应用程序池设置为“Enable 32-Bit Applications = false”,我将其更改为 true,即可解决问题。

      【讨论】:

      • 感谢您分享解决方案!
      【解决方案3】:

      你还没有说你是否已经让 ANY Perl 工作了(甚至是“hello world”),或者问题是否出在这个特定的脚本上(也许只是在这个一台特定的服务器)。

      无论如何-

      1. 我怀疑你的 Perl 安装有问题。

      2. 你肯定需要做更多的故障排除。

      3. 我会先验证一个简单的单行“hello world”是否可行。

      4. 接下来,我将“分而治之”来准确确定WHERE 问题出在哪里。我猜它很可能在“MyScript.pl”中的某个地方。我也猜想应该很容易找到。

      5. 这些链接可能会为您提供更多线索,让您了解在“分而治之”时可能要寻找的确切内容(在您确认可以从 IIS 调用 Perl 本身之后):

      PS: 我猜这个问题可能很简单,就像“MyScript.pl”中的 URL 丢失或不合适一样!

      PPS: 冒着重复自己的风险 - 请先验证“helo_world.pl”。如果它不起作用,请发布完整的“hello_world”脚本和完整的错误消息。

      【讨论】:

      • 感谢您的回复,我的 hello world 应用程序运行良好。我将表单的操作更改为“helloWorld.pl”以测试 MyScript.pl 是否有问题,但得到相同的结果:(
      • 问:所以你是说:a) 如果你浏览到“HelloWorld.pl”,它可以工作。您在浏览器中看到“echo 'Hello World'”的结果,对吗? b)您还说,如果您将表单的操作指向相同的“HelloWorld.pl”,它会给您相同的“HTTP 405 无效方法(HTTP 动词)”错误?这没有任何意义:(...请发布您的“HelloWorld.pl”。
      • 感谢您的帮助。我找到了解决方案,已在此处发布。
      猜你喜欢
      • 2016-08-07
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      相关资源
      最近更新 更多