[ASP .NET] API Request及Respond內容上限

[ASP .NET] API Request及Respond內容上限

要改變上傳到IIS的資料大小,可在wbe.config中加上以下設定:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="104857600" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

單位為bytes,所以104857600 = 100mb x 1024 x 1024 bytes,通常會遇到這問題大多是要上傳檔案時,但其實上傳JSON太大也會被擋掉。

其他還有maxQueryString可設定QueryString大小、maxUrl可設定url長度大小,詳細說明可參考Microsoft Docs

另外在API傳出JSON時,也有大小限制,可在web.config中加上以下設定:

<configuration>
  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="102400"></jsonSerialization>
      </webServices>
    </scripting>
  </system.web.extensions>
</configuration>

這樣直接影響這個站台所有的JSON輸出長度(UTF-8 characters),詳細說明可參考Microsoft Docs

但如果想要只調整某一個API輸出的長度,可用以下方式:

public JsonResult TestMethod()
{
    return new JsonResult()
    {
        Data = result,
        MaxJsonLength = Int32.MaxValue
    };
    //return Json(result);
}

直接設定輸出的JSON長度,關於JsonResult詳細說明可參考Microsoft Docs