我正在 Azure 上构建 REST API,但当我尝试通过 PUT 方法访问端点时,我收到 HTTP 405“方法不允许”
状态以及 IIS 错误消息:
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
如何启用 PUT 方法以及 Azure 默认配置设置可能默认阻止的其他方法?
我尝试将 web.config 文件添加到应用程序的根目录,并将 verbs 元素上的allowUnlisted 设置为 true:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<verbs applyToWebDAV="false" allowUnlisted="true" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
这没有改变任何事情。
我是一名开源人士,所以 IIS 的世界对我来说非常陌生。如有任何帮助,我们将不胜感激。
谢谢!
最佳答案
将以下内容添加到 system.webServer
元素中的 web.config
中:
<handlers>
<remove name="PHP54_via_FastCGI" />
<add name="PHP54_via_FastCGI" path="*.php" verb="GET, PUT, POST, HEAD, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK" modules="FastCgiModule" scriptProcessor="D:\Program Files (x86)\PHP\v5.4\php-cgi.exe" resourceType="Either" requireAccess="Script" />
</handlers>
这适用于 PHP 的内置版本,当前默认值为 PHP 5.4,但如果您选择了 PHP 5.3 或 PHP 5.5,则需要修改 php-cgi 处理程序的路径。
关于php - 如何在 Azure 中启用 PUT 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25170826/