相关疑难解决方法(0)

在IIS上将表单发布到PHP时,导致HTTP 405"无效方法(HTTP动词)"错误的原因是什么?

我在PHP(5.2.9-1)应用程序中有一个表单导致IIS(Microsoft-IIS/6.0)在POST时抛出以下错误:

无法显示您要查找的页面,因为使用了无效的方法(HTTP谓词)来尝试访问.

这是一个HTTP 405状态代码.应用程序中的所有其他表单都有效,因此我认为PHP页面的IIS'动词'设置是正确的.

这是客户的服务器,我无权访问以验证设置或测试代码.我所能做的就是发送客户替换文件.IIS服务器上的其他客户没有此类问题.

表格非常简单:

<form method="post" action="index.php">
    ... fields ... 
</form>
Run Code Online (Sandbox Code Playgroud)

什么可以导致IIS仅在一个表单上抛出该错误,但在其他表单上工作正常?

php iis iis-6

33
推荐指数
4
解决办法
18万
查看次数

HTTP错误405.0 - IIS Express中不允许的方法

在Visual Studio 2013下向本地IIS Express网站发出完美的动词时:

CROMULENT http://localhost:7579/Handler.ashx HTTP/1.1
Host: localhost:7579
Run Code Online (Sandbox Code Playgroud)

服务器响应错误:

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Run Code Online (Sandbox Code Playgroud)

这是对"通用处理程序" (即.ashx)的请求.如果我再次尝试静态资源:

SCHWIFTY http://localhost:7579/Default.htm HTTP/1.1
Host: localhost:7579
Run Code Online (Sandbox Code Playgroud)

服务器响应错误:

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Run Code Online (Sandbox Code Playgroud)

这是尝试使用HTTP谓词的所有方法:

DELETE http://localhost:7579/Handler.ashx HTTP/1.1
Host: localhost:7579

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE

PUThttp://localhost:7579/Handler.ashx HTTP/1.1
Host: localhost:7579

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Run Code Online (Sandbox Code Playgroud)

这个问题有时被我要求死亡.但没有人提出过解决方案.

</问题>

微软的Bug

从根本上说,问题在于Microsoft默认情况下会破坏IIS和IISExpress.他们不需要像处理Web服务器那样处理HTTP谓词,而是处理动词.

在管理在Windows Server上运行的完整IIS时,最容易看到这一点.挑选任何内置的处理程序(例如CSHTML处理程序)的,你可以看到,有人认为这将是 …

iis iis-7 iis-7.5 iis-express visual-studio-2013

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

iis ×2

iis-6 ×1

iis-7 ×1

iis-7.5 ×1

iis-express ×1

php ×1

visual-studio-2013 ×1