亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Web API 2 Json 輸出被截斷

Web API 2 Json 輸出被截斷

C#
萬千封印 2022-10-15 15:09:40
我有以下控制器來獲取 JSON 數據    [HttpPost]    [Route("Clients/Active")]    public IHttpActionResult SearchClient(ClientSearchParams p)    {        List<ClientViewModel> _result = PeopleComponent.SearchClient(p).ToList();        return Ok<IEnumerable<ClientViewModel>>(_result);    }適用于較小的數據(幾千行)并返回完整格式的 JSON,但當數據稍大時,響應偶爾會被截斷但 200 OK。知道為什么控制器會隨機截斷它。完全糊涂了。
查看完整描述

3 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

我認為您的問題與問題有關

我認為您可以做的最糟糕的事情是返回數據包而不影響其大小,因此在這種情況下,您應該使用分頁。

除了蒼白之外,我更愿意使用DtoRto命名在您的 Web API 中返回的操作的對象。ViewModels 對象與純 ASP.NET MVC 體系結構更相關,在 Web API 的情況下,客戶端可以使用多種不同的方式使用您的端點。


查看完整回答
反對 回復 2022-10-15
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

Webapi 有一個默認的最大請求大小。它會自動截斷大于此值的消息并為您提供無效的 JSON。根據您的 .NET 核心版本,您可以增加它 -


例如,在 .NET 4.5 中,您可以編輯 Web.Config 以包含以下內容:


<system.web>

<authentication mode="None" />

<customErrors mode="Off" />

<compilation debug="true" targetFramework="4.5.2" />

<httpRuntime targetFramework="4.5.2" maxRequestLength="100000"/>

</system.web>


查看完整回答
反對 回復 2022-10-15
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

感謝你的幫助。這一行是 web.config 是真正的罪魁禍首,它啟用了 http 日志記錄。我將 http logging 設置為 false 并且它可以工作 add key="ENABLE_HTTP_LOGGING" value="true" 將其設置為 false 并且一切正常。



查看完整回答
反對 回復 2022-10-15
  • 3 回答
  • 0 關注
  • 249 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號