2

首先,我对IIS很熟悉,但是没有太多的实践经验,所以我来这里。

我已经设置了 IIS7 并将我的 HTML 网站、脚本等放入 wwwroot 文件夹。出于测试目的,我可以在本地浏览该网站。

我有一个带有简单电子邮件表单的网页,它使用马特的脚本存档:FormMail.pl。提交后,我遇到了这个错误:

 405 - HTTP verb used to access this page is not allowed.
 The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.

我不确定此错误或如何解决它,以便电子邮件表单正常工作。

如果您需要有关此问题的任何其他信息,我将提供尽可能多的信息。

谢谢 :)

更新:

好的,所以我修改了我的 HTML 以使用 nms 脚本。在 IIS 中,我必须启用 CGI 和 ISAPI,因为它们没有安装。安装它们后,我为 *.pl、*cgi 添加了一个脚本处理程序映射;还将动词 GET、HEAD 和 POST 添加到两个处理程序映射中。我比使用:

 <!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
 <head>
 <title>Perl Test</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 </head>
 <body>
 <h1>Perl is working!</h1>
 </body>
 </html>

测试 *.pl 和 *.cgi 是否在 localhost 上工作。

现在到了我被卡住的部分......

当我单击提交按钮时,它会将我定向到 formmail.cgi(formmail.pl 由于某种原因不起作用),但它只会将我定向到 cgi 脚本和一个空白的白页。

4

2 回答 2

1

405 表示您的 Web 服务器无法识别请求中的 HTTP 方法(GET、POST、HEAD 等)。在您的情况下,我认为默认情况下不允许 .pl 扩展名来处理 POST 请求。请参阅此链接(取自此处)以创建处理程序映射。

于 2012-10-24T11:30:14.833 回答
0

检查此错误最重要的是控制台窗口中的 HTML 选项卡。或者,如果错误显示在浏览器中,请查看那里。无论哪种情况,请查看“请求的 URL”的文件类型。

如果它是 *.json 文件,请按照这些说明进行操作。如果是其他格式,您可能需要调整处理程序映射中使用的 exe 文件。确保在服务器级别配置每个!!!在单击 Mime Types 或 Handler Mappings 之前不要单击站点;单击服务器名称(在树/对象资源管理器中),以便每个站点继承设置。如果您也在网站上设置它们,您的 web.config 会显式应用处理程序映射,但如果您在服务器级别添加它则不会。

http://www.uipress.com/add-json-handler-support-in-iis-7/#.UT_bw9aOR8E

由于您正在处理 CGI,因此您将有一个稍微不同的脚本映射可执行文件。这至少应该让你走上正轨。

于 2013-03-13T02:08:11.110 回答