Asp.net-Mvc

ASP.NET MVC 頁面不通過 3G 或某些代理伺服器提供服務

  • July 10, 2014

我們剛剛推出了一個新的基於 ASP.NET MVC 的 web 應用程序,它可以在所有桌面連接和所有移動設備(如 iPhone 等)上正常工作。但是,當通過 3G 連接查看某些頁面時(通過 3G加密狗在筆記型電腦上,或直接在移動設備上),提供一個空白的白色頁面,沒有任何類型的內容。看起來好像我們返回了一個空請求。

在某些代理網路上,我們遇到了類似的問題,他們說我們的請求太大。這是有道理的,因為它只影響某些頁面,我假設移動網路提供商在他們身邊執行各種代理伺服器。

但是,我無法找到任何關於什麼會構成太大請求的資訊。我已經分析了其中一個頁面,以下是一些我認為可能相關的統計數據:

HTML 內容大小: 33.04KB 壓縮,50.65KB 未壓縮

所有樣式表的總大小(4 個文件): 32.39KB 壓縮,181.65KB 未壓縮

所有外部 JS 的總大小(24 個文件): 227.82KB 壓縮,851.46KB 未壓縮

對我來說,內容的壓縮大小並不過分,但也許我錯了。任何人都可以建議我可以做些什麼來解決這個問題,因為我很難找到任何明確的資訊。

我們確實解決了這個問題,它取決於響應標頭中 Set-Cookie 項的大小和數量。我們發現我們有一個錯誤,即標題中有近 100 個 Set-Cookie 項。解決此錯誤並減小值的大小修復了該問題

就 MVC 而言,3G 網路與 Wifi 沒有什麼不同。但是,移動設備可以記憶體的文件大小是有限制的。在這種情況下,每次回發都會從伺服器請求這些文件。

由於某些頁面確實有效,因此我認為將問題隔離到特定的故障點而不是在野外搜尋是個好主意。

您可以在 Firefox 或 Chrome 開發人員工具中使用 3G 加密狗和 firebug 輕鬆調試問題

  • 首先確保沒有導致問題的 Java Script 錯誤
  • 確認 Javascript/css/html 文件確實已傳遞給客戶端。(客戶端上的螢火蟲)。在伺服器上檢查 IIS 日誌或 MS 網路監視器或創建一個 http 代理,您可以在其中監視流量。嘗試任何你覺得舒服的。
  • 僅針對 css/java script/html 就有近 30 個請求,如果有圖像,請求數可能會更高。在 3G 上完成所有這些請求可能需要很長時間。嘗試捆綁 Java Script 文件並減少請求計數。瀏覽器對它們可以同時發出的請求數量有限制,這增加了所有時間(我相信 Firefox 可以同時發出大約 10 個請求)。

引用自:https://stackoverflow.com/questions/10531120