Asp.net core “;405方法不允许”;对于“;删除”;方法

Asp.net core “;405方法不允许”;对于“;删除”;方法,asp.net-core,iis,Asp.net Core,Iis,当我尝试在我的登台环境中删除时,我得到了一个“405方法不允许” 有什么我应该注意的吗 当我在本地计算机(IIS 10.0)上运行它时,它工作正常,可以删除ID,但当我在登台环境中运行它时,它不工作,并在swagger上返回405错误 这似乎只在所有删除端点时发生 这就是我实现删除端点的方式: [HttpDelete] [Route("{Id}")] 来自响应标头的当前输出: allow: GET, HEAD, OPTIONS, TRACE content-length:

当我尝试在我的登台环境中删除时,我得到了一个“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
我已经为startup.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=".\logs\stdout" />
    </system.webServer>
</configuration>


我的解决方案中没有配置文件,只有launchsettings.json,因为它是.net核心,所以我使用的是json文件。如果在IIS服务器上托管应用程序,则需要web.config文件。您是否将应用程序托管在IIS服务器上?