簡體   English   中英

WebApi內部服務器錯誤

[英]WebApi Internal Server Error

我有2個項目,一個前端(AngularJS)和一個后端(C#Web-Api)。 問題是,當前端查詢api(例如GET localhost / api / Especialistas?rol = XXXX)時,出現500錯誤。 這是API的代碼:

public IHttpActionResult GetEspecialista(string rol)
{
    Especialista especialista = db.Especialistas.First( e=> e.Rol == rol);
    if (especialista == null)
    {
        return NotFound();
    }
    return Ok(especialista);
}

自從到達return Ok(especialista)以來,API一直在工作。

前端使用此Restangular查詢API

Restangular.one("Especialistas?rol=XXXX").get()

網絡控制台顯示請求200 OK OPTION ,但顯示500 Internal Server Error GET

我在WebApiConfig.cs文件中嘗試了一個消息處理程序,以檢查GET請求是否已到達Api,並且確實已經到達了Api,所以我不知道發生了什么,因為我沒有更改任何配置文件。

感謝您提供有關如何解決此問題的任何線索。

如果成功調用了您的操作,但仍然收到500錯誤,我認為該錯誤是由especialista對象的序列化(轉換為HTTP響應時)引起的。

很有可能,由於某些導航屬性會在對象圖中創建循環,導致序列化失敗。 建議返回簡單的對象,而不是實體框架模型。

請嘗試以下操作:

var retObj = new { Prop1 = especialista.Prop1, Prop2 = especialista.Prop2 };
return Ok(retObj);

如果上述代碼可行,則建議創建應基於數據模型填充的服務模型“鏡像”對象。 應該返回這些對象而不是數據模型。

好幫手避免財產賦值的樣板代碼是Automapper

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM