Asp.net web api 数据库刷新后Web API路由更改
这是一个非常奇怪的问题,我只是把它当作一个奇怪的问题,以防有人以前见过它 我使用的是C#、ASP.NETWebAPI、FluentNHibernate和SQLServer2012 我有一个传递给web api控制器方法的用餐对象:Asp.net web api 数据库刷新后Web API路由更改,asp.net-web-api,asp.net-web-api-routing,Asp.net Web Api,Asp.net Web Api Routing,这是一个非常奇怪的问题,我只是把它当作一个奇怪的问题,以防有人以前见过它 我使用的是C#、ASP.NETWebAPI、FluentNHibernate和SQLServer2012 我有一个传递给web api控制器方法的用餐对象: [HttpPost] [ActionName("PostMeal")] public HttpResponseMessage PostMeal(Meal mealToPost) { var helper = new Datahelper(); try
[HttpPost]
[ActionName("PostMeal")]
public HttpResponseMessage PostMeal(Meal mealToPost)
{
var helper = new Datahelper();
try
{
var fshelper = new FoodServiceHelper(helper);
fshelper.SaveMeal(mealToPost);
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (Exception ex)
{
var response = Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, ex);
return response;
}
}
发布的方法同样非常简单:
public void SaveMeal(Meal mealToPost)
{
var url = _connectionString + "food/PostMeal";
var client = new HttpClient();
var formatter = new JsonMediaTypeFormatter
{
SerializerSettings = { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }
};
var clientTask = client.PostAsync(url, mealToPost, formatter)
.ContinueWith(posttask => posttask.Result.EnsureSuccessStatusCode());
clientTask.wait();
}
用餐对象非常简单。一些元素,一些通用集合
我可以正常发布几顿饭(通常是20顿左右),这时不知何故它就再也找不到路线了。我通过向服务器端添加断点来验证这一点。它先点击它几次,然后它甚至找不到控制器方法
这是奇怪的部分。如果我删除并重新创建数据库,再过20顿左右也没问题
我怀疑这是某种映射问题,但我无法证明
好奇。我能想到的第一件事是确保POST调用正在发生,此外,它正在从Body(而不是从header或URLP)映射参数-因此您应该更改公共HttpResponseMessage PostMeal([FromBody]mealToPost),您可以使用fiddler或Google开发工具检查并查看准确的响应。然后你可以在这里发布同样的内容。