【问题标题】:How to remove WebDav in Startup.cs ASP.NET Core如何在 Startup.cs ASP.NET Core 中删除 WebDav
【发布时间】:2025-12-31 22:15:01
【问题描述】:

我通过 FTP 发布了一个 .NET Core Web API。

默认情况下,某些方法不起作用(放置和删除),因为服务器默认启用了 WebDAV。

要删除它,在发布应用程序后,我必须手动转到 FTP 上的 web.config 并添加以下行

  <modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
  </modules>

如何将其设置为自动删除 - 我假设通过 Startup.cs

【问题讨论】:

  • *.com/questions/48188895/… 这可能会有所帮助,这似乎是重复的
  • 看来,该问题的答案阐明了我使用的相同解决方案。但是,他们没有回答我提出的问题
  • 您可以将 web.config 用于生产和 DEV,并且在构建/发布时我们可以发布生产 webconfig。它不会工作吗?
  • @Dreamweaver 标准的 VS2019 项目不像以前那样包含 web 配置。它是在发布到 FTP 后创建的,您需要手动覆盖它等。问题是,如何通过 Startup.cs 简单地删除 WebDav 我认为应该是可能的

标签: c# http web .net-core asp.net-core-webapi


【解决方案1】:

您只需将 web.config 文件添加到您的 API,然后当您自动发布时,它会使用您的 web.config。

【讨论】:

    【解决方案2】:

    兄弟,我试过了,但这对我有用。

    但我通过转到已发布的文件并打开 web.config 文件成功。

    我做了一些更改,如下所示。

    <system.webServer>
     <modules>
       <remove name="WebDAVModule" />
     </modules>
    
     <handlers>
      <remove name="WebDAV" />
      <add name="aspNetCore" path="*" verb="*" 
          modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\#.dll" stdoutLogEnabled="#" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
    

    【讨论】:

      【解决方案3】:

      您必须从 iis 服务器中删除 WebDAVModule。

      步骤:

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

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

      【讨论】:

      • 仔细阅读问题。这不是关于删除它,而是关于将其设置为自动执行。
      【解决方案4】:

      将此代码添加到您的网络配置文件中:

         <system.webServer>
              <modules>
                <!-- Remove WebDAV module so that we can make DELETE requests -->
                <remove name="WebDAVModule" />
              </modules>
              <handlers>
                <!-- Remove WebDAV module so that we can make DELETE requests -->
                <remove name="WebDAV" />
                <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
              </handlers>
          
              other configs here...
          
          
          </system.webServer>
      

      【讨论】:

      • 问题不在于如何使用 .NET Core 删除 WebDAV。问题是关于如何自动化这个过程。谢谢