上傳文件返回HTTP 413 未顯示頁面,因為請求實體過大


環境:

IIS6 + php7.3.4nts

 

- 問題描述 在IIS上部署一個可以接受文件上傳的netCore WebApi,使用`Http`驗證時沒有任何問題,使用`SSL`后;通過微信小程序Post文件流,就會導致異常:`未顯示頁面 因為請求實體過大`的413 錯誤;但是在 Chrome 內核的微信小程序編輯工具中,則不存在該問題。
- 問題原因 客戶端發起一個請求后,IIS會收到足以解析請求標頭的數據,但不會收到整個請求實體正文,如果發現需要客戶端證書時,將嘗試重新協商連接;但此時客戶端正等待向IIS發送請求中的其余數據。因此,如果讓客戶端能接受重新協商,則必須使用SSL預加載功能預加載請求實體正文,此時則可能引起默認設置值`UploadReadAheadSize`長度太小的問題。



解決方法:
1).CMD中進入 C:\Windows\System32\Inetsrv 目錄執行命令行
appcmd.exe list config -section:system.webServer/serverRuntime // 查看當前設置的 UploadReadAheadSize 大小(byte)
appcmd.exe set config -section:system.webServer/serverruntime /uploadreadaheadsize:20480000  // 這個要設置夠大

2).還需要在web.config文件中更改上傳文件的大小

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!--單位:字節。 -->
        <requestLimits maxAllowedContentLength="1073741824" />
        <!-- 1 GB -->
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

  原文地址:https://www.cnblogs.com/yibinboy/p/12289691.html




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM