使用.NET后端的Azure移动服务获得异常

时间:2014-05-27 11:57:34

标签: c# azure-mobile-services

添加具有子实体的实体(1:n)时,我获得了异常。 当调试器捕获所有异常时,我只能得到此异常。 不幸的是,只有异常的消息是可见的,而不是我需要的信息本身。 (System.Data.Entity.Validation.DbEntityValidationException) (当插入没有孩子的实体时,服务工作正常)

客户端获取MobileServiceInvalidOperationException:无法完成请求。 (错误请求)

控制器上的方法(PatchAppointment)是我可以添加异常处理的唯一方法,并且此处不会出现异常。

 public Task<Appointment> PatchAppointment(string id, Delta<Appointment> patch)
    {
        try
        {
            return UpdateAsync(id, patch);
        }
        catch (Exception ex)
        {
            // not coming through here..
            throw;
        }             
    }

我还尝试在Httpconfiguration.Services中添加ExceptionLogger,但没有例外。

如何获取整个异常对象以查看EntityValidationErrors? 当知道这一点时,我也可以在发生异常时添加日志记录。

1 个答案:

答案 0 :(得分:1)

你可以添加异常处理的“唯一方法中的PatchAppointment”是什么意思?如果您在插入时遇到问题,则必须检查PostAppointment而不是PatchAppointment。当您提到插入表格时遇到问题时,PatchAppointment会处理更新数据。

public async Task<IHttpActionResult> PostAppointment(Appointment item)
{
    Appointment current = await InsertAsync(item);
    return CreatedAtRoute("Tables", new { id = current.Id }, current);
}