如何从IIS中删除WebDAV模块?

Sam*_*bri 5 webdav azure azure-web-sites

我奋斗了几天,要在MS Azure上为我的PHP应用程序启用PUT和DELETE请求。我发现一些答案建议从IIS中删除WebDAV模块。

我该怎么办?

Eri*_*num 11

  1. 转到您在 IIS 中的站点
  2. 点击“模块”
  3. 删除 WebDAV 模块
  4. 重新启动站点(可能不需要)

PUT 和 DELETE 请求现在应该可以工作。


小智 8

我已经花了一整天的时间并尝试了我遇到的所有解决方案,但没有任何效果对我有用。最终起作用的是从打开或关闭 Windows 功能中关闭“WebDAV 发布”功能。这位于:

Internet 信息服务\万维网服务\通用 HTTP 功能\WebDAV 发布。


shi*_*ake 5

我在 Azure 应用服务中托管了一个 PHP 应用程序,我能够通过手动创建一个名为 web.config 的文件并将其添加到我的 Web 应用程序的根目录来解决这个问题。

这是该文件的全部内容。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <security>
        <requestFiltering>
            <verbs allowUnlisted="false">
                <add verb="GET" allowed="true" />
                <add verb="POST" allowed="true" />
                <add verb="DELETE" allowed="true" />
                <add verb="PUT" allowed="true" />
            </verbs>
        </requestFiltering>
    </security>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>
    <handlers>
      <remove name="WebDAV" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="PHP56_via_FastCGI" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS,XYZ" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
      <add name="PHP56_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.6\php-cgi.exe" resourceType="Either" requireAccess="Script" />
    </handlers>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

您会在处理程序部分注意到它引用了PHP56_via_FastCGI。这是特定于 PHP 5.6 的。如果您使用的是不同版本的 PHP,则需要更新名称和文件路径以反映该版本。


juv*_*han 0

我认为你的问题在 stackoverflow 的上一篇文章中已经有解决方案。

尝试一下,希望有帮助! /sf/answers/1139300641/