php - 如何在 Azure 中启用 PUT 请求?

标签 php iis azure azure-web-app-service

我正在 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/

相关文章:

php - 选择 * 不会在 php mysql 中打印任何内容

Azure 虚拟机和 Web API : how set endpoint

iis - PowerShell:检索AppPool中的应用程序数量

azure - Cosmos SQL 查询

java - 使用 ClientID 、 TennantID 和 ClientSecret 从 Azure 下载时出现问题

debugging - 使用 Azure 模拟器时停止 ASP.Net 开发服务器启动

php - Google OAuth2 无法在本地开发服务器上运行 - PHP Codeigniter spark

php - 当我从另一个页面获取数据时仅获取一条记录

php - 如何使用 PHP 从具有多个同名列的 MySQL 行中获取结果?

c# - 如何从以管理员用户身份运行的 C# 代码重新启动 IIS?