如何在.NET8中删除ASP.NET Core Web API中的WebDav

xesrikrc  于 2024-01-09  发布在  .NET
关注(0)|答案(1)|浏览(300)

我有一个带有EF数据库的ASP.NET Core API,我提供了一个删除REST端点。在Swagger接口中测试时,它工作得很好,但是当我从另一个应用程序使用Http请求时,我得到了一个MethodNotAllowed Http状态。
现在我发现,为了解决这个问题,你必须添加一个web.config文件到你的项目文件夹中,并包含以下标签(How to remove WebDav in Startup.cs ASP.NET Core):

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

字符串
不幸的是,这不适合我的API。也许在.NET 8中还有其他事情要做?
我的web.config文件位于我的项目的根目录下,看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <modules>
      <remove name="WebDAVModule" />
    </modules>
  </system.webServer>
</configuration>


非常感谢您的任何输入

0aydgbwb

0aydgbwb1#

对于任何与此问题作斗争的人,您需要修改的文件是:
{project_root}.vs{project_name}\config\applicationhost.config
然后你需要修改这个标签:

<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />

字符串
在动词属性中添加“PUT,”。
我还在我的文件夹的根目录下添加了一个web.config文件,并添加了以下标记作为system.webServer的子文件,但老实说,在挣扎了几个小时后,我失去了这个跟踪,不太记得这两个变化是否必要,但以防万一:

<handlers>
      <remove name="aspNetCore" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>

相关问题