iis7 https 發生413錯誤 未顯示頁面,因為請求實體過大


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

appcmd.exe list config -section:system.webServer/serverRuntime // 查看當前設置的 UploadReadAheadSize 大小(byte)
appcmd.exe set config -section:system.webServer/serverruntime /uploadreadaheadsize:20480000  // 這個要設置夠大

第二步

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

在創建的項目里面是沒有 “web.config” 文件的。

上傳大文件時需要配置下文件的大小,需要在 “config” 文件里配置。創建一個或復制一個 “web.config”

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

  


免責聲明!

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



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