簡體   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