[英]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.