3

有点基础,但我尝试了一些方法来解决以下错误,但无法获得正确的解决方案。

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <form  method="post">
            <input type="text" name="query1"></input>
            <input type="text" name="query2"></input>
            <input type="submit"></input>

        </form>
    </body>
</html>

运行时出错:HTTP 错误 405.0 - 方法不允许 由于正在使用无效的方法(HTTP 动词),因此无法显示您要查找的页面。

在 IIS 的映射中,我添加了 POST 方法,但它不起作用!请提出建议!

4

3 回答 3

3

以下代码为我解决了这个问题(它适用于 iis 上的 php)。

网络配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers accessPolicy="Read, Execute, Script">
            <remove name="PHP55_via_FastCGI" />
            <add name="PHP55_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" requireAccess="Script" />
            <add name="HTML_via_FastCGI" path="*.html" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" requireAccess="Script" />
            <add name="HTM_via_FastCGI" path="*.htm" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" requireAccess="Script" />
        </handlers>
        <security>
            <requestFiltering>
                <fileExtensions>
                    <add fileExtension=".php" allowed="true" />
                </fileExtensions>
                <verbs>
                    <add verb="POST"   allowed="true" />
                    <add verb="GET"    allowed="true" />
                    <add verb="HEAD"   allowed="true" />
                    <add verb="DELETE" allowed="true" />
                    <add verb="PUT"    allowed="true" />
                </verbs>
        </requestFiltering>
    </security>
</system.webServer>

于 2013-12-10T17:14:39.640 回答
1

没有看到更多,这可能是各种各样的问题。考虑到这一点,以下是针对您的问题的可能修复列表:

原因1

出现此问题的原因是客户端使用不符合 HTTP 规范的 HTTP 方法发出 HTTP 请求。

要解决此问题,请参阅解决方案 1。

原因2

发生此问题的原因是客户端通过将 POST 方法发送到配置为由 StaticFile 处理程序处理的页面来发出 HTTP 请求。例如,客户端将 POST 方法发送到静态 HTML 页面。但是,为 StaticFile 处理程序配置的页面不支持 POST 方法。

要解决此问题,请参阅解决方案 2。

决议 1

确保客户端发送的请求包含有效的 HTTP 方法。为此,请按照下列步骤操作:

  1. 单击开始,在开始搜索框中键入记事本,右键单击记事本,然后单击以管理员身份运行。
  2. 注意 如果系统提示您输入管理员密码或进行确认,请键入密码或提供确认。在文件菜单上,单击打开。在“文件名”框中,键入 %windir%\system32\inetsrv\config\applicationhost.config,然后单击“打开”。
  3. 在 ApplicationHost.config 文件中,找到该标记。
  4. 确保所有处理程序都使用有效的 HTTP 方法。
  5. 保存 ApplicationHost.config 文件。

决议 2

将 POST 请求发送到配置为由 StaticFile 处理程序以外的处理程序(例如,ASPClassic 处理程序)处理的页面。或者,更改 StaticFile 处理程序正在处理的请求,使其成为 GET 请求而不是 POST 请求。

MSDN 源

于 2013-10-18T10:05:51.627 回答
0

在我看来,您有 2 个错误: 1) 如果您的文件扩展名是 *.html,请将其更改为例如*.asp、*.php并且它会起作用。2)input标签没有结束标签。

于 2013-10-18T10:12:43.573 回答