提问人:Toto 提问时间:11/11/2023 更新时间:11/21/2023 访问量:48
如何删除 ASP.NET 中的 WebDav Core Web API。NET8型
How to remove WebDav in ASP.NET Core Web API in .NET8
问:
我有一个带有 EF 数据库的 ASP.NET Core API,并且我提供了一个删除 REST 终结点。在 Swagger 界面中测试它时,它运行良好,但是当我使用 Http 请求从另一个应用程序尝试时,我得到一个 MethodNotAllowed Http 状态。
现在我发现,为了解决这个问题,您必须将 web.config 文件添加到您的项目文件夹并包含以下标记(如何在启动.cs ASP.NET Core 中删除 WebDav):
<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>
非常感谢您的任何意见
答:
1赞
Toto
11/21/2023
#1
对于任何也遇到此问题的人,您需要修改的文件是:
{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,DELETE”添加到谓词属性中。
我还在文件夹的根目录下添加了一个 web.config 文件,并添加了以下标签作为 system.webServer 的子级,但老实说,在挣扎了几个小时后,我忘记了这一点,并且不太记得是否有必要进行这两项更改,但以防万一:
<handlers>
<remove name="aspNetCore" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
评论