繁体   English   中英

我的最小 ASP.NET 核心 Web API 返回错误 405: Method not allowed

[英]My minimal ASP.NET Core Web API returns error 405: Method not allowed

我想通过使用 put 动词调用我的 api 端点来更新记录,但不允许他返回错误 405 方法。

我的 api 端点:

app.MapPut("/sirs/{Id}", async (int Id, SIRCContext db, Sir sirc) =>
{
    var record = await db.Sirs.FindAsync(Id);

    if (record is null) 
         return Results.NotFound();

    record.ActionTaken = sirc.ActionTaken;
    record.Status = sirc.Status;
    record.ResolvedDate = sirc.ResolvedDate;
    record.FurtherActionRequired = sirc.FurtherActionRequired;
  
    await db.SaveChangesAsync();

    return Results.NoContent();
});

我的客户代码:

public async Task UpdateSIRC(int id, Sir sirc)
{
    try
    {
        await SetAuthToken();
        var response = await _httpClient.PutAsJsonAsync($"/sirs/{id}", sirc);//Error here
        response.EnsureSuccessStatusCode();
        statusMessage = "Update Successful";
    }
    catch (Exception)
    {
        statusMessage = "Failed to update data.";
    }
}

我发现将以下内容添加到 web.config 是可行的。 api 仅在调试模式下工作,当部署到 IIS 时不工作。

<system.webServer>
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
  </modules>
</system.webServer>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM