"405方法不允许"为"删除"方法



当我尝试在暂存环境中删除时,我收到"不允许 405 方法"。

有什么我应该注意的吗?

当我在本地计算机 (IIS 10.0) 上运行它时,它工作正常并且能够删除 ID,但是当我在暂存环境中运行它时,它不起作用并在 swagger 上返回 405 错误。

这似乎只发生在所有删除端点

这就是我实现删除端点的方式:

[HttpDelete]
[Route("{Id}")]

响应标头的当前输出:

allow: GET, HEAD, OPTIONS, TRACE 
content-length: 1293 
content-type: text/html 
date: Mon, 14 Sep 2020 04:15:15 GMT 
server: Microsoft-IIS/8.5 
x-powered-by: ASP.NET 
x-powered-by-plesk: PleskWin

我已经为我的初创公司提供了当前设置.cs

private static void ConfigureCors(IServiceCollection services)
{
services.AddCors(o => o.AddPolicy("testAppPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.Build();
}));
}

我知道这是一个相当模糊的问题,但是关于我可以从哪里开始寻找如何调试这种情况的任何提示?

根据您的描述和错误消息,我建议您首先确保为暂存服务器安装了正确的 asp.net 核心模块。

然后我建议你可以尝试删除IIS服务器中的WebDAVModule。

更多详细信息,您可以尝试按以下格式修改 web.config。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<!-- I removed the following handlers too, but these
can probably be ignored for most installations -->
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
</handlers>
<aspNetCore processPath="yourasp.net core config" 
stdoutLogEnabled="false"
stdoutLogFile=".logsstdout" />
</system.webServer>
</configuration>

相关内容

最新更新