编程语言
首页 > 编程语言> > php – 如何在Azure中启用PUT请求?

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

作者:互联网

我正在Azure上构建REST API,但是当我尝试通过PUT方法访问端点时,我得到HTTP 405“Method Not Allowed”状态以及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,iis,azure,azure-web-sites
来源: https://codeday.me/bug/20190715/1466992.html