Php 如何在Azure中启用PUT请求?
我正在Azure上构建REST API,但当我尝试通过PUT方法访问端点时,我会得到一个Php 如何在Azure中启用PUT请求?,php,iis,azure,azure-web-app-service,Php,Iis,Azure,Azure Web App Service,我正在Azure上构建REST API,但当我尝试通过PUT方法访问端点时,我会得到一个HTTP 405“不允许的方法”状态以及一条IIS错误消息: 无法显示您正在查找的页面,因为无效的 正在使用方法(HTTP谓词) 如何启用PUT方法以及Azure默认配置设置默认阻止的其他方法? 我尝试将web.config文件添加到我的应用程序根目录中,动词元素的allowUnlisted设置为true: <?xml version="1.0" encoding="utf-8"?> <co
HTTP 405“不允许的方法”
状态以及一条IIS错误消息:
无法显示您正在查找的页面,因为无效的
正在使用方法(HTTP谓词)
如何启用PUT方法以及Azure默认配置设置默认阻止的其他方法?
我尝试将web.config文件添加到我的应用程序根目录中,动词元素的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的世界对我来说非常陌生。感谢您的帮助
谢谢 将其添加到您的
web.config/system.webServer
:
<handlers>
<remove name="ExtensionlessUrl-Integrated-4.0" />
<add name="ExtensionlessUrl-Integrated-4.0"
path="*."
verb="GET,HEAD,POST,DEBUG,DELETE,PUT"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
或者,不要指定允许哪些动词,而是说
verb=“*”
以允许所有动词。将其添加到web.config/system.webServer
:
<handlers>
<remove name="ExtensionlessUrl-Integrated-4.0" />
<add name="ExtensionlessUrl-Integrated-4.0"
path="*."
verb="GET,HEAD,POST,DEBUG,DELETE,PUT"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
或者,不要指定允许哪些动词,而是说
verb=“*”
以允许所有动词。将以下内容添加到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,当前默认为PHP5.4,但如果选择PHP5.3或PHP5.5,则需要修改PHPCGI处理程序的路径 将以下内容添加到
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,当前默认为PHP5.4,但如果选择PHP5.3或PHP5.5,则需要修改PHPCGI处理程序的路径 要完成cory_flower给出的答案,您应该根据给出的版本更改54 例:7.2给出了:
<handlers>
<remove name="PHP72_via_FastCGI" />
<add name="PHP72_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\v7.2\php-cgi.exe" resourceType="Either" requireAccess="Script" />
</handlers>
非常琐碎,但只是为了获取信息
更新:固定路径要完成cory_flower给出的答案,您应该根据给出的版本更改54 例:7.2给出了:
<handlers>
<remove name="PHP72_via_FastCGI" />
<add name="PHP72_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\v7.2\php-cgi.exe" resourceType="Either" requireAccess="Script" />
</handlers>
非常琐碎,但只是为了获取信息
更新:固定路径您使用的是什么语言?PHP、Node.js、ASP/ASP.NET或Python?我使用的是PHP(Laravel4)。你使用的是什么语言?PHP、Node.js、ASP/ASP.NET或Python?我正在使用PHP(Laravel 4)。我已将这些解决方案添加到Microsoft Azure网站备忘单中。。这成功了!非常感谢你!我已经被这堵了好几个小时了。我已将备忘单添加到书签中,这也非常有用。MS不允许在门户中使用HTTP方法配置,这似乎很明显。我已将这些解决方案添加到Microsoft Azure网站备忘单中。。这成功了!非常感谢你!我已经被这堵了好几个小时了。我已将备忘单添加到书签中,这也非常有用。遗憾的是,MS不允许在门户中使用HTTP方法配置,这似乎已经足够明显了。不,对于PHP来说是不允许的。这是针对Asp.Net的。但是你从来没有在问题中提到过php。不,对于php不会。这是针对Asp.Net的。但是你从来没有在问题中提到过php。