当我尝试在暂存环境中删除时,我收到"不允许 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>