2009-08-24 21 views
6

किसी कारण से मेरे आवेदन का दृश्यमान विशाल (लगभग 14 मिलियन वर्ण) बन गया। यह लोडिंग समय के लगभग 1 मिनट जोड़ता है। यदि पृष्ठ अंत में लोड होता है (जो अक्सर नहीं होता है), सर्वर हर बार कोई फॉर्म भेजता है क्योंकि "Post size exceeded allowed limits."छुपा फ़ील्ड देखें इतना बड़ा यह सब कुछ क्रैश करता है

यह अचानक दिखाई दिया। मैंने पृष्ठ पर कुछ जावास्क्रिप्ट, कोई फ़ील्ड नहीं जोड़ा है।

लोगों ने मुझे व्यूस्टेट को बाहर करने की जांच करने के लिए कहा। Google ने मुझे यह करने के लिए कहा:

<pages maxPageStateFieldLength="1024"> 

... तो अब एक विशाल छिपे हुए क्षेत्र की जगह अब मेरे पास 100 बहुत बड़े छिपे हुए फ़ील्ड हैं। यह वही नहीं है जो मैं ढूंढ रहा था।

.NET ऐसा कुछ क्यों करेगा? मैं इसे कैसे ठीक करूं?

+0

कोई भी मौका आप कुछ नियंत्रणों के लिए व्यूस्टेट बंद कर सकते हैं? –

+2

पेज को देखे बिना कहना मुश्किल है, लेकिन व्यूस्टेट में एम्बेडेड होने के लिए व्यूस्टेट डिकोडर आज़माएं। यदि आपको आईआईएस पर जीजीआईपी चालू करने के अलावा उन्हें संपीड़ित दृश्यस्टेट को लागू करने की आवश्यकता नहीं है तो आपको ग्रिड/टेबल के व्यूस्टेट को भी बंद करना चाहिए। –

+0

नियंत्रण इनपुट फ़ील्ड हैं और उन लोगों के लिए व्यूस्टेट को बंद करने का कोई तरीका नहीं है और यहां तक ​​कि अगर ऐसा होता है तो मुझे बहुत सारे कोड को फिर से लिखना होगा। इसके अलावा 10 फ़ील्ड की तरह हैं, यह बुरा नहीं होना चाहिए ... सही? – marcgg

उत्तर

7

मैं अपने viewstate डिकोड करने के लिए तो तुम क्या यह के भीतर वास्तव में है की एक विचार प्राप्त कर सकते हैं एक सुविधा का उपयोग सुझाव है (जब से तुम स्पष्ट रूप से वहाँ में जानकारी का एक बहुत कुछ है आप की जरूरत ही नहीं है।)

एक viewstate decoder आपको यह देखने की अनुमति देगा कि आपके व्यूस्टेट में क्या है जो आप उम्मीद नहीं कर रहे हैं। फिर आप अपने कोड को संशोधित कर सकते हैं, अपमानजनक नियंत्रण को हटा सकते हैं, या उन नियंत्रणों के लिए चुनिंदा रूप से दृश्यस्टेट अक्षम कर सकते हैं (EnableViewState="false" विशेषता का उपयोग करके) जो सक्षम नहीं होना चाहिए था।

+0

धन्यवाद, यह बहुत अच्छा लग रहा है, मैं अभी इस परीक्षण का परीक्षण करूंगा – marcgg

+0

यह परेशान है, सॉफ़्टवेयर क्रैश हो जाता है, स्पष्ट रूप से स्ट्रिंग बहुत बड़ी है। लेकिन अब मुझे पता है कि मेरा व्यूस्टेट 13 428 604 वर्ण लंबा है :) – marcgg

+0

आखिर में यह मेरे 5 वें प्रयास पर दुर्घटनाग्रस्त होने के बिना चला गया :) ऐसा लगता है कि यह मेरे सभी पेज को व्यूस्टेट में डाल रहा है ... यह काफी अजीब है। मैं यह देखने की कोशिश करूंगा कि यहां तर्क क्या है और SO – marcgg

3

ध्यान रखें कि नियंत्रण व्यूस्टेट के बिना पोस्टबैक में अपने मूल्य बनाए रखेंगे। आप बिना किसी समस्या के अपने कई नियंत्रणों के लिए व्यूस्टेट अक्षम कर सकते हैं। एक विशिष्ट नियंत्रण सेट के लिए viewstate अक्षम करने के लिए:

EnableViewState="false" 

आप अपने ग्रिडों और है कि आप viewsate की जरूरत नहीं है यह काफी आकार कम हो जाएगा के लिए किसी भी नियंत्रण के सभी के लिए यह सेट करते हैं।

+0

मैंने यह किया और यह कुछ भी नहीं बदला। मैं भी शामिल हूँइस तरह एसीएक्स फाइलें: और वहां बहुत सारे जेएस चल रहे हैं। क्या यह जुड़ा जा सकता है? मैंने इनके लिए व्यूस्टेट अक्षम कर दिया और इसे ठीक नहीं किया – marcgg

+0

मैंने इसे समझ लिया (स्वीकृत उत्तर देखें)! मैंने बेस्का को स्वीकार कर लिया क्योंकि यह वह जवाब है जिसने मुझे इस मुद्दे को समझने में मदद की, लेकिन आपका भी सहायक था ... इसलिए +1 और आपको बहुत धन्यवाद :)! – marcgg