環境:
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