我有一個 ASP.NET 應用程式運行在:
Windows Server 2019 標準版
IIS 版本 10.0.17763.1
應用程式設定為使用 HTTPS
應用程式正在使用庫 System.Web.UI.WebControls.FileUpload 進行檔案上傳
應用程式正在使用 QuickPDFDLL0811.dll 讀取 PDF 檔案并計算頁數
用戶一直報告某些 PDF 檔案無法上傳。chrome 瀏覽器選項卡顯示一個微調器,好像應用程式正在做某事,然后用戶會看到“無法訪問該站點”頁面(附加)。但是,相同的用戶表示他們已經通過我在 google 

uj5u.com熱心網友回復:
您的問題與經驗有關,您希望遇到同樣錯誤的人回答您。但是你的問題需要一些細節。雖然我會嘗試回答你。
你描述的場景可能來自三件事......
- 在使用編輯器或 Visual Studio 等 IDE 部署某些應用程式時,您會注意到并非所有檔案夾/目錄都已發布。當您部署到生產環境或機器上時,有些不存在。因此,這意味著當您最終部署應用程式時,它不會包含您嘗試上傳資料的檔案夾,并且如果您的代碼不包含檢查目錄是否存在并在它時創建它的塊沒有找到,代碼失敗。(此程序是通過使用 Visual Studio IDE 發布的)。
所以確保你的代碼檢查目錄是否存在,否則創建它。
- 當 Directory 的安全設定不允許寫入時。可以是只讀的,不能讀/寫。
您將需要授予對您嘗試將資料上傳到的目錄的寫入權限。
- 資源的絕對路徑。有時在代碼中,您正在寫入或上傳到的檔案夾的路徑在生產中可能會有所不同。
確保生產機器與您的開發環境具有相同的部署資源路徑。
注意:上述三種情況都可以使代碼在測驗機器上作業,但不能在生產環境中作業,因為如果你在本地機器上進行測驗,它可能會包含你正在寫入或上傳到的目錄。并且大多數時候不需要在開發人員機器上授予讀/寫訪問權限,但在生產中,你肯定會這樣做。當我未能檢查目錄是否存在并且我直接從我的 Visual Studio IDE 發布到 Microsoft Azure 時,它??發生在我身上。當我嘗試上傳圖片時,由于找不到目錄而失敗。雖然沒有出現錯誤訊息。
uj5u.com熱心網友回復:
我將冒險猜測無法上傳的 PDF 檔案大于 4MB。如果是這樣,您遇到的是經典 asp.NET 應用程式的默認請求限制。
請參閱此問題的答案以了解如何解決此問題: 如何增加 ASP.NET 中的最大上傳檔案大小?
您看到的“連接已重置”的行為是因為服務器在達到限制時關閉了連接。它必須這樣做,因為在完全接收到請求之前它無法發送回應,因此它除了終止連接之外別無選擇,這會導致您在瀏覽器中看到錯誤。存在此限制的原因是出于安全原因:惡意客戶端可能會以極慢的速度發送極大的請求,從而使您的服務器資源不堪重負。出于類似的原因,Web 服務器通常還要求客戶端以合理的速率傳輸資料。
顯然,在 ASP.NET 核心中,請求限制默認值被提高到 30MB,可能是因為 4MB 限制在現代 Web 上過于嚴格。
uj5u.com熱心網友回復:
我不得不讓網路團隊參與進來,因為 IIS 甚至沒有記錄該請求。他們提到他們已經應用了一些安全規則,我們的應用程式受到了影響。在對他們應用的規則進行例外處理后,我們能夠成功上傳之前失敗的檔案。我無法準確說出應用了哪些型別的規則,因為我不與那個團隊合作,但他們使用名為“F5”的工具管理我們的流量路由和負載平衡。謝謝大家的時間和指導。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/418565.html
標籤:
上一篇:修復ggplot中的圖例
下一篇:itext7:InvalidCastException:無法將iText.Html2pdf.Attach.Impl.Layout.HtmlPageBreak型別的物件轉換為iText.Layout.E
