Asp.net core “;405方法不允许”;对于“;删除”;方法
当我尝试在我的登台环境中删除时,我得到了一个“405方法不允许” 有什么我应该注意的吗 当我在本地计算机(IIS 10.0)上运行它时,它工作正常,可以删除ID,但当我在登台环境中运行它时,它不工作,并在swagger上返回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:
[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服务器上?