2009-06-10 46 views
13

Tôi thường nhận được thông báo Khách hàng bị ngắt kết nối. Tôi không sử dụng cân bằng tải - chỉ một máy chủ IIS duy nhất. Tôi cần phải biết những gì đang gây ra điều này và làm thế nào để sửa chữa nó.Khách hàng bị ngắt kết nối

Dưới đây là các thông tin ngoại lệ:

Type: System.Web.HttpException 
Message: The client disconnected. 

Exception Data: 

Source: System.Web 

TargetSite: Void ThrowError(System.Exception, System.String, System.String, Boolean) 

StackTrace: 
    at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) 
    at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) 
    at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) 
    at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) 
    at System.Web.UI.HiddenFieldPageStatePersister.Load() 
    at System.Web.UI.Page.LoadPageStateFromPersistenceMedium() 
    at System.Web.UI.Page.LoadAllState() 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
+0

FWIW, trông giống như có một câu hỏi tương tự đã: http://stackoverflow.com/questions/809413/what-might-be-cause-thethe-client-ngắt kết nối-asp-net-exception –

+1

@ ChrisW.Rea Có, nhưng điều này chỉ định một máy chủ IIS duy nhất, nơi khác đặc biệt đề cập đến cân bằng tải. Câu trả lời tôi đang tìm kiếm là câu hỏi này chứ không phải câu hỏi khác. – Michael

Trả lời

1

Có thể là người dùng được hủy trang sau lại bằng cách nhấn STOP hoặc RELOAD trong trình duyệt. Ứng dụng của bạn có một số trang khá nặng, ví dụ: rất nhiều viewstate và bạn có người dùng đang sử dụng kết nối chậm hơn không, ví dụ: quay sô?

+0

Đây không phải là những gì đang xảy ra. Tất cả các kết nối cục bộ là 100MB/1GB và điều này xảy ra trên nhiều trang khác nhau. Chúng tôi sử dụng rất nhiều viewstate và không có cách nào hiệu quả xung quanh đó. Vấn đề dường như xảy ra gần như ngẫu nhiên. –

+0

Trường hợp sử dụng mà bạn thực sự cần phải ngăn chặn lỗi này xảy ra là gì? –

8

CHÚNG TÔI cũng nhận được ngoại lệ này và chúng tôi nhận được ngoại lệ theo cách hoàn toàn có thể lặp lại. Ngoại lệ này được ném khi ViewState đã trở thành "lớn" và người dùng nhấp vào một nút trước khi yêu cầu trước đã hoàn tất ...

Trong trường hợp này xảy ra rất dễ dàng vì bài đăng đang sử dụng ajax, do đó trình duyệt không không dừng trả lời trong khi ViewState đang được gửi tới máy chủ. Nhấp vào điều khiển này sẽ làm cho ngoại lệ lặp đi lặp lại.

+0

Điều này giải thích lý do tại sao nó đang xảy ra. Làm thế nào để giải quyết loại vấn đề này nếu yêu cầu của khách hàng giống như bạn đã nói.hoặc chúng tôi có thể bỏ qua điều này không? – Ajay

+0

Có một vài cách để giảm tác động của ViewState. Một cách là tạo nhà cung cấp chế độ xem của riêng bạn và ngừng gửi nó qua dây. Khác là để vô hiệu hóa nó và làm công việc để làm cho các chức năng trang mà không có nó. Cách quyết liệt nhất, và con đường chúng tôi đã đi xuống, là chuyển các trang của bạn sang MVC. –

2

Điều này cũng xảy ra khi trang của bạn cho phép người dùng cuối thực hiện nhiều lần đăng lại một phần mà không phải chờ phản hồi. Có nghĩa là, Giả sử một bảng trong đó một nhấp chuột trên một hàng thực hiện một phần postback và cho anh ta biết chi tiết của hàng đó. Bây giờ nếu người dùng một hàng và không chờ đợi chi tiết, hãy nhấp vào một hàng khác ... rất có thể có ngoại lệ này xảy ra.

ASP.NET AJAX từ bỏ yêu cầu đã thực hiện khi yêu cầu async mới được thực hiện.

Tuy nhiên Những gì còn lại ununderstood là tại sao IIS cho phép yêu cầu bị bỏ rơi như vậy để đạt ASP.NET ở tất cả ..

Các vấn đề liên quan