2012-05-10 24 views
8

Chúng tôi vừa mới phát triển một ứng dụng web ASP.NET MVC mới hoạt động tốt trên tất cả các kết nối máy tính để bàn và tất cả các thiết bị di động như iPhone, vv Tuy nhiên, khi một số trang nhất định được xem qua kết nối 3G (hoặc qua 3G dongle trên máy tính xách tay hoặc trực tiếp trên thiết bị di động), một trang trắng trống được phục vụ không có nội dung nào. Có vẻ như chúng tôi đã trả lại một yêu cầu trống.Các trang ASP.NET MVC không được phân phát qua 3G hoặc các máy chủ proxy nhất định

Trên một số mạng được ủy quyền nhất định, chúng tôi nhận được sự cố tương tự, theo đó họ cho biết kích thước yêu cầu của chúng tôi quá lớn. Loại này có ý nghĩa, vì nó chỉ ảnh hưởng đến một số trang nhất định và tôi cho rằng các nhà cung cấp mạng di động hoạt động theo mọi cách của máy chủ proxy ở bên cạnh họ.

Tuy nhiên, tôi không thể tìm thấy bất kỳ thông tin nào về những gì sẽ cấu thành một yêu cầu quá lớn. Tôi đã cấu hình một trong những trang trong câu hỏi, đây là một số số liệu thống kê tôi nghĩ có thể có liên quan:

kích thước nội dung HTML: 33.04KB nén, nén 50.65KB
Tổng kích thước của tất cả các stylesheets (4 files): 32.39KB nén, 181.65KB nén
Tổng kích thước của tất cả các JS bên ngoài (24 files): 227.82KB nén, 851.46KB nén

Với tôi, kích thước nén của nội dung không quá lớn, nhưng có lẽ tôi đã sai. Bất cứ ai có thể tư vấn về những gì tôi có thể làm để giải quyết vấn đề này, như tôi đã có một thời gian thực sự khó khăn tìm kiếm bất kỳ thông tin dứt khoát về điều này.

+0

Bạn đã gõ kích thước CSS không nén của mình chưa? Tôi chắc chắn hy vọng như vậy. – thirtydot

+0

Tôi đã làm, xin lỗi về điều đó.Đã sửa lỗi – pauldunlop

+0

Bạn đã thử tắt tính năng nén chưa? Có thể máy chủ web của bạn đang triển khai nén theo cách mà một số proxy web hoặc trung gian mạng 3G không thể xử lý. Ít nhất, chia sẻ cách nén được thiết lập để chúng tôi có thể xem đó có phải là vấn đề nằm ở đó hay không. – Jacob

Trả lời

0

Chúng tôi đã thực sự giải quyết vấn đề này và đã giảm kích thước và số lượng các mục Set-Cookie trong tiêu đề phản hồi. Chúng tôi tìm thấy chúng tôi đã có một lỗi trong đó có gần 100 mục Cookie-Set trong tiêu đề. Giải quyết lỗi này và giảm kích thước của các giá trị đã khắc phục sự cố

2

Theo như MVC, mạng 3G không khác gì Wifi. Tuy nhiên có một giới hạn về kích thước của các tập tin mà điện thoại di động có thể Cache. Trong trường hợp đó, các tệp đó sẽ được yêu cầu từ máy chủ với mỗi lần đăng lại.

Vì một số trang hoạt động, tôi nghĩ rằng nên tách biệt vấn đề thành điểm thất bại cụ thể hơn là tìm kiếm trong tự nhiên.

Bạn có thể gỡ rối vấn đề easilt với một dongle 3G và firebug trong Firefox hoặc Chrome công cụ phát triển

  • Hãy chắc chắn rằng không có lỗi Java Script ở nơi đầu tiên đó là gây ra vấn đề
  • Xác nhận Javascript/tệp css/html thực sự được gửi đến máy khách. (Firebug trên máy khách). Trên máy chủ kiểm tra nhật ký IIS hoặc MS Network Monitor hoặc tạo proxy http nơi bạn có thể theo dõi lưu lượng truy cập. Hãy thử cái mà bạn cảm thấy thoải mái.
  • Bạn có gần 30 yêu cầu chỉ dành cho css/java script/html và số lượng có thể cao hơn nếu bạn có hình ảnh. Việc hoàn thành tất cả các yêu cầu đó có thể được thực hiện mãi mãi trên 3G. Hãy thử gói các tệp Java Script và giảm số lượng yêu cầu. Trình duyệt có giới hạn về số lượng yêu cầu đồng thời mà họ có thể thực hiện, thêm vào tất cả thời gian (Firefox tôi tin rằng có thể thực hiện khoảng 10 yêu cầu đồng thời).
+0

Cảm ơn các đề xuất của bạn. Vấn đề là, việc tải JS/CSS của chúng tôi không được tối ưu hóa cao vào lúc này, vì vậy chúng tôi phục vụ chính xác, tải trọng và đóng gói chính xác JS và CSS trên mọi trang trên trang web. Với tôi, quy tắc này có khả năng liên quan đến JS/CSS. Tôi cũng giả sử quy tắc đưa ra sự cố lưu vào bộ nhớ đệm/tải, vì các thiết bị di động giống nhau trên kết nối WiFi, v.v. Giả định của tôi là nó phải liên quan đến kích thước của các gói HTML ban đầu, nhưng tôi có thể tìm thấy không có thông tin để xác nhận xem đó có phải là vấn đề không, và nếu có thì giới hạn kích thước đó là bao nhiêu. – pauldunlop