我正在使用.net核心公开API。当我从邮递员那里调用api时,某些方法未命中,得到404 not found错误消息。
[HttpPost]
public async Task<bool> AddLogs([FromBody]List<LogModel> model)
{
var result = false;
foreach (var item in model)
{
result = await _logService.Insert("Logs", item);
}
return result;
}
public class LogModel: TableEntity
{
public int Status { get; set; }
public bool IsBreak { get; set; }
public string Location { get; set; }
public DateTime StartDateAndTime { get; set; }
public DateTime EndDateAndTime { get; set; }
public string Remarks { get; set; }
public int Id { get; set; }
}
当我调用api'AddLogs'时,出现找不到消息的错误消息。
但是尝试时,
[HttpPost]
public async Task<bool> Post()
{
return true;
}
它将返回真实值。
但是我注意到当我在localhost'AddLogs'api中调用时工作正常。它将击中api。但是当我以天蓝色发布时,它表明我没有找到。
答案 0 :(得分:0)
我在自己的网站上进行了测试,效果很好。
这样做的原因是,部署或默认的ASP.NET Core Web API模板在网站的根目录中不包含默认文档。例如,index.htm,defualt.aspx,default.htm是默认文档,如果在访问URL时未提供特定文件,则IIS将提供它们。
如果您有多个httppost方法,则可以设置[HttpPost("AddLogs/")]
来指定AddLogs操作。请记住,还请在Configure
方法中添加以下代码。
app.UseMvc(routes =>
{
routes.MapRoute(name: "default", template: "api/{controller}/{action}/{id?}");
});