2009-06-10 14 views
13

मुझे अक्सर क्लाइंट डिसकनेक्टेड संदेश मिल रहा है। मैं भार संतुलन का उपयोग नहीं करता - केवल एक एकल आईआईएस सर्वर। मुझे यह जानने की ज़रूरत है कि इसका क्या कारण है और इसे कैसे ठीक किया जाए।क्लाइंट डिस्कनेक्ट

यहाँ अपवाद जानकारी है:

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, लग रहा है वहाँ पहले से ही एक समान सवाल है की तरह: http://stackoverflow.com/questions/809413/क्या-हो सकता है-द-क्लाइंट-डिस्कनेक्ट-एएसपी-नेट-अपवाद –

+1

@ क्रिसडब्ल्यू.रिया हाँ, लेकिन यह एक एकल आईआईएस सर्वर निर्दिष्ट करता है, जहां अन्य विशेष रूप से भार संतुलन का उल्लेख करता है। जो जवाब मैं ढूंढ रहा था वह इस प्रश्न पर है, न कि दूसरे। – Michael

उत्तर

1

यह है कि उपयोगकर्ताओं को ब्राउज़र में बंद या पुनः लोड क्लिक करके पृष्ठ के बाद वापस निरस्त कर रहे हैं संभव है। क्या आपके एप्लिकेशन में कुछ पेज हैं जो काफी भारी हैं, उदा। बहुत सारे व्यूस्टेट, और क्या आपके पास ऐसे उपयोगकर्ता हैं जो धीमे कनेक्शन पर हैं, उदा। डायल करें?

+0

यह नहीं हो रहा है कि क्या हो रहा है। सभी स्थानीय कनेक्शन 100 एमबी/1 जीबी हैं और यह कई अलग-अलग पृष्ठों पर होता है। हम बहुत सारे व्यूस्टेट का उपयोग करते हैं और इसके आसपास कोई प्रभावी तरीका नहीं है। समस्या लगभग यादृच्छिक रूप से होती है। –

+0

उपयोग करने का मामला क्या है जिसे आपको वास्तव में इस त्रुटि को रोकने से रोकने की आवश्यकता है? –

8

हमें यह अपवाद भी मिलता है, और हम इसे पूरी तरह से दोहराने योग्य तरीके से प्राप्त करते हैं। यह अपवाद फेंक दिया गया है जब ViewState "बड़ा" बन गया है और उपयोगकर्ता पिछले अनुरोध से पहले एक बटन क्लिक करता है ...

हमारे मामले में यह बहुत आसानी से होता है क्योंकि पोस्ट बैक AJAX का उपयोग कर रहा है, इसलिए ब्राउजर नहीं करता प्रतिक्रिया देना बंद नहीं है जबकि ViewState सर्वर पर भेजा जा रहा है। इस नियंत्रण पर क्लिक करने से अपवाद बार-बार होता है।

+0

यह बताता है कि यह क्यों हो रहा है। इसलिए इस प्रकार के मुद्दों को कैसे हल करें यदि ग्राहक आवश्यकता आपके जैसा है। या हम इसे अनदेखा कर सकते हैं? – Ajay

+0

व्यूस्टेट के प्रभाव को कम करने के कुछ तरीके हैं। एक तरीका है अपना खुद का व्यूअर प्रदाता बनाना और तार पर इसे भेजना बंद करना। दूसरा इसे अक्षम करना और पेज को इसके बिना काम करने के लिए काम करना है। सबसे कठिन तरीका, और जिस मार्ग का हम नेतृत्व कर रहे हैं, वह आपके पृष्ठों को एमवीसी में बंद करना है। –

2

यह तब भी होता है जब आपका पृष्ठ अंतिम उपयोगकर्ता को प्रतिक्रिया के इंतजार किए बिना कई आंशिक पोस्टबैक करने की अनुमति देता है। मतलब, एक टेबल मानें जहां एक पंक्ति पर क्लिक आंशिक पोस्टबैक करता है और उसे उस पंक्ति का विवरण दिखाता है। अब यदि उपयोगकर्ता एक पंक्ति और विवरण के इंतजार किए बिना, एक और पंक्ति पर क्लिक करता है ... संभावना है कि यह अपवाद हो।

एएसपी.NET AJAX पहले से ही निष्पादन अनुरोध को त्याग देता है जब एक नया एसिंक अनुरोध किया जाता है।

हालांकि क्या ununderstood क्यों आईआईएस ऐसे परित्यक्त अनुरोध पर सभी ASP.NET तक पहुँचने की अनुमति है बनी हुई है ..

संबंधित मुद्दे