2014-01-14 34 views
3

我有一個ODataController似乎正常工作,如果我只是通過我的瀏覽器做一個GET。但是當我用JayData閱讀時,我得到了500回。我可以在我的ODataController中看到GetItems()被調用,它返回一個有效的Items列表。但我看到少數ODataContentTypeException異常被拋出,其中包含以下消息:Jayata從OData控制器讀取數據拋出ODataContentTypeException

附加信息:找不到與響應的內容類型相匹配的受支持的MIME類型。沒有支持的類型'application/atom + xml; type = feed,application/atom + xml,application/json; odata = verbose,application/json'匹配內容類型'application/json;的OData = fullmetadata;字符集= UTF-8' 。

然後

其他信息:支持的MIME類型不能被發現,該響應的內容類型匹配。沒有支持的類型'application/atom + xml; type = feed,application/atom + xml,application/json; odata = verbose,application/json'匹配內容類型'application/json;的OData = fullmetadata;字符集= UTF-8' 。

然後

其他信息:支持的MIME類型不能被發現,該響應的內容類型匹配。沒有支持的類型'application/xml,application/json; odata = verbose,application/json'與內容類型'application/json;的OData = fullmetadata;字符集= UTF-8' 。

而且最後

其他信息:支持的MIME類型不能被發現,響應的內容類型相匹配。沒有支持的類型'application/xml,application/json; odata = verbose,application/json'與內容類型'application/json;的OData = fullmetadata;字符集= UTF-8' 。

我假設這些是我回來的500的原因,但似乎沒有一種方法可以肯定。 根據瀏覽器,發送請求的請求如下:

接受:應用/ atomsvc​​ + xml的; Q = 0.8,應用/ JSON;的OData = fullmetadata; Q = 0.7,應用/ JSON; Q = 0.5,/; q = 0.1

接受編碼:gzip,放氣,SDCH

與500錯誤空響應是所有接收回來。任何人有這種麻煩?

接受語言:EN-US,EN; Q = 0.8,EN-CA; Q = 0.6

回答

4

爲了使此解決方案意義更多信息需要:使用MVC5,與WebAPI 2.0和OData nuget軟件包版本5.0

由於某些原因JayData正在嘗試使用OData v2。所以要修復它,我通過源代碼挖掘,發現你可以指定V3。

更改上下文的配置以包含maxDataServiceVersion:「3.0」。

從這:

dbContext = new MyEntities({ name: 'oData', oDataServiceHost: '/odata' })); 

要這樣:

dbContext = new MyEntities({ name: 'oData', oDataServiceHost: '/odata', maxDataServiceVersion: '3.0' })); 

這對我的作品。

如果JayStack記錄可用的配置選項,那將會很好。

+1

我想多勞累你一千倍,但唉,先生,我是允許的,但一個 – Eonasdan