WebAPI中未捕获500错误

时间:2017-07-13 08:12:44

标签: c# asp.net-mvc azure asp.net-web-api

我有WebApi2项目,我发布到Azure。

它运行,我看到我的视图(使用方法的主视图和API视图)。

当我通过邮递员向后端发送请求时,例如发送到此链接

  

http://timetrackingbackend.azurewebsites.net/api/EndPauses

它需要向我显示所有数据(在我的示例中它是数据库中的一行)

这是我的请求屏幕

enter image description here

控制器方法代码

GetOrdinal(String)

}

没有一种方法不适用于产品。

使用相同的请求,但在localhost上,一切都很棒。

我怎么能理解哪里有问题?

我没有信息而不是 public class EndPausesController : ApiController { private trackingappEntities db = new trackingappEntities(); // GET: api/EndPauses public IQueryable<EndPause> GetEndPauses() { return db.EndPauses; } // GET: api/EndPauses/5 [ResponseType(typeof(EndPause))] public IHttpActionResult GetEndPause(int id) { EndPause endPause = db.EndPauses.Find(id); if (endPause == null) { return NotFound(); } return Ok(endPause); } // PUT: api/EndPauses/5 [ResponseType(typeof(void))] public IHttpActionResult PutEndPause(int id, EndPause endPause) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != endPause.Id) { return BadRequest(); } db.Entry(endPause).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!EndPauseExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); } // POST: api/EndPauses [ResponseType(typeof(EndPause))] public IHttpActionResult PostEndPause(EndPause endPause) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.EndPauses.Add(endPause); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = endPause.Id }, endPause); } // DELETE: api/EndPauses/5 [ResponseType(typeof(EndPause))] public IHttpActionResult DeleteEndPause(int id) { EndPause endPause = db.EndPauses.Find(id); if (endPause == null) { return NotFound(); } db.EndPauses.Remove(endPause); db.SaveChanges(); return Ok(endPause); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } private bool EndPauseExists(int id) { return db.EndPauses.Count(e => e.Id == id) > 0; } }

感谢您的帮助。 的更新

这是我的路线配置

status:500 internal server error

UPDATE2

我在配置文件中关闭自定义错误,现在出现此错误

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

}

我该如何解决?

2 个答案:

答案 0 :(得分:1)

您的错误日志实际上是在告诉您究竟是什么问题:

&#34; ExceptionMessage&#34;:&#34;无法打开数据库\&#34; trackingappdb \&#34;登录请求。登录失败。\ r \ n登录用户&#39; nemesises&#39;失败。&#34;,

转到生产配置转换并检查连接字符串以确保用户名/密码组合合适,并且可以连接到您的prod数据库。

答案 1 :(得分:0)

请使用带有操作名称的控制器。

示例: -

http://timetrackingbackend.azurewebsites.net/api/EndPauses/GetEndPauses