2012-08-03 15 views
14

काम नहीं कर रहा है। मैंने हाल ही में .NET संस्करण 1.1 से 4.0 तक एक एएसपी.NET प्रोजेक्ट माइग्रेट करना शुरू कर दिया है। यह प्रणाली वर्तमान में ग्राहक साइट पर काम करती है और काम करती है। जब मैं वीएस विज़ार्ड के माध्यम से समाधान माइग्रेट करता हूं, तो मुझे कोई त्रुटि नहीं मिलती है। त्रुटि यह है कि कोई सर्वर नियंत्रण ईवेंट और व्यूस्टेट हमेशा खाली रहता हैएएसपी.NET 1.1 से 4.0 माइग्रेशन:

मैंने स्पष्ट रूप से ViewStateMode को सक्षम करने और AutoEventWireup को सही करने की कोशिश की है। दुर्भाग्य से कुछ भी काम नहीं करता है। परियोजना को वेब अनुप्रयोग के रूप में नहीं लिखा गया है (कनवर्ट करने से समस्या हल नहीं होती है)।

मैंने यह भी जांच की है कि सभी सर्वर नियंत्रण आईडी आईडी सेट (वे करते हैं)।

इस परियोजना का अपना मास्टर पेज सिस्टम है और System.Web.UI.Page पर एक मोटी परत है जो बहुत सी चीजें तोड़ सकती है, लेकिन अब तक मुझे परेशानी का स्रोत नहीं मिला है।

क्या कोई विशेष सेटिंग है जिसे मुझे जांचना चाहिए (यानी डिफ़ॉल्ट मान .NET 1.1 के बाद बदल गए हैं) या क्या आप मुझे कुछ सुझाव दे सकते हैं कि ऐसा क्यों हो सकता है?

संपादित करें 1:

सीआरसी = -२१३४९३६८९२ & _ EVENTTARGET = MPage% 24BC% 24TestButton & _EVENTARGUMENT = & : इन मूल्यों है कि जब एक LinkButton पर क्लिक पोस्ट कर दिया हैं _ VIEWSTATE = & _EVENTVALIDATION =% 2FwEWAwL% 2BraDpAgLB49K8A wKy8rFAt4Axk3NlUEWxrtY% 2FRtaexH% 2F634CkJe6G9Im5EOPXtVw% 3 डी

संपादित करें 2: मैं कस्टम मास्टर पृष्ठ तंत्र बारीकी से जांच की है और मैंने पाया कि यह सही पृष्ठ पर कूदने से पहले Server.Transfer(...) विधि के व्यापक उपयोग में आता है। क्या यह गायब व्यूस्टेट का एक संभावित कारण है? (तो यह अजीब बात होगी कि EventTarget हमेशा जारी रहता है) और सबसे महत्वपूर्ण बात यह है कि 1.1 और 4.0 के बीच कोई बदलाव हो सकता है?

+0

क्या व्यूस्टेट वास्तव में खाली है या आप इसे सर्वर की ओर नहीं लेते हैं? अर्थात। क्या यह पृष्ठ के साथ प्रस्तुत किया जाता है? क्या आप हमें कार्रवाई करने के बाद सर्वर पर पोस्ट किए गए फ़िडलर लॉग दिखा सकते हैं? –

+0

मैंने अपनी मूल प्रश्न में जानकारी जोड़ दी है। –

+0

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

उत्तर

1

यह समस्या का समाधान हो सकता है या नहीं भी हो सकता है लेकिन यदि आप इस पोस्ट को स्टैक Why is the form action attribute empty on production server? पर देखते हैं तो यह फॉर्म की एक्शन विशेषता के आसपास केंद्रित एएसपी.नेट 3.5 एसपी 1 में पेश किए गए ब्रेकिंग बदलाव के बारे में बात करता है - यह एक जगह हो सकती है प्रारंभ!

मुझे अतीत में समान चीजें करना पड़ता है और यह एक दर्दनाक प्रक्रिया हो सकती है, खासकर जब आपके पास "कस्टम मास्टरपेज" कार्यक्षमता हो (मुझे ऐसा करना पड़ता है)। मैं वास्तव में एक मूल पृष्ठ चुनूंगा - हमारे पास एक बेसपेज था जिसे कस्टमपेज द्वारा उत्साहित किया गया था, जिसे AdminBasePage और फिर Admin Page आदि द्वारा विरासत में प्राप्त किया जा सकता था। यदि आप अपेक्षाकृत सरल पृष्ठ चुनते हैं और ब्रेक पॉइंट सेट करते हैं पेज निर्माण की प्रक्रिया जितनी संभव हो सके और उसके बाद केवल एफ 10 को तब तक प्रस्तुत किया जा सकता है जब तक कि इसे दो बार नहीं कहा जा रहा है (यह हमारे मामले में बहुत कुछ हुआ और कुछ मुद्दों का कारण ओवरराइट्राइटन आदि के साथ था)।

आपके सर्वर के जवाब में। "2 संपादित करें" प्रश्न पूछें, मुझे यह संसाधन http://www.codeproject.com/Tips/74472/ViewState-and-Server-Transfer-Best-practices मिला है जो बताता है कि (उम्मीद है कि) viewstate और server.transfer सद्भाव में काम करना जारी रखता है। मैं हर दिन इस प्रश्न पर वापस आना जारी रखता हूं - इस बारे में अधिक अपडेट छोड़ें कि आपका कैसा चल रहा है। मेरी आपसे पूरी सहानुभूति है!

1

एक बार माइग्रेट पूरा हो गया है,

यदि यह एक वेब अनुप्रयोग है:

  1. में डिजाइन मोड में नेट सर्वर नियंत्रण के मूल्यों को बदलने का प्रयास करें:

    यहाँ एक चेकलिस्ट है विजुअल स्टूडियो 2010. (इसके ढांचे 4.0 के बाद से, आप विजुअल स्टूडियो 2010 का उपयोग करेंगे) इसमें बदलना शामिल है: सर्वर नियंत्रण, या किसी अन्य गुण के आकार को बदलना। यह सर्वर पक्षीय डिजाइनर कोड उत्पन्न करने के लिए डिज़ाइनर को मजबूर करेगा।

  2. सुनिश्चित करें कि आप समाधान को साफ करें और इसे पुनर्निर्माण करें। मुझे समान समस्याएं होती थीं और डिजाइनर से डिज़ाइन बदलने के बाद उन्हें ठीक किया जाता था, कभी-कभी त्रुटियां देगी। यह माइग्रेशन के दौरान त्रुटियों को नहीं दिया।

  3. फॉर्म को सहेजें और इसका परीक्षण करें।

  4. Firefox में Firebug का उपयोग कर कोई हो, चाहे जावास्क्रिप्ट स्क्रिप्ट त्रुटियों जब आप वेबपृष्ठ को लोड चेक।

    आशा है कि यह सहायक होगा।

+0

जैसा कि मैंने अपने प्रश्न में कहा है, यह एक वेब अनुप्रयोग नहीं है। –

4

क्या आपने यह लिंक देखा है? http://www.asp.net/whitepapers/aspnet4/breaking-changes

पेज यह कहा गया है में गहरा है कि, जब FORM की कार्रवाई खाली है, निम्न होता है:

  1. एक .aspx पेज को "सेट प्रपत्र तत्व की कार्रवाई विशेषता के साथ ब्राउज़र को भेजी जाती है "।
  2. फॉर्म को वापस ASP.NET पर पोस्ट किया गया है।
  3. एक प्रबंधित HTTP मॉड्यूल इकाई निकाय के कुछ हिस्से को पढ़ता है। उदाहरण के लिए, एक मॉड्यूल Request.Form या Request.Params पढ़ता है। इससे पोस्ट अनुरोध के इकाई निकाय को प्रबंधित स्मृति में पढ़ा जा सकता है। नतीजतन, इकाई निकाय अब आईआईएस 7 या आईआईएस 7.5 एकीकृत मोड में चल रहे किसी देशी कोड मॉड्यूल के लिए उपलब्ध नहीं है।
  4. आईआईएस डिफ़ॉल्ट डॉक्यूमेंट मॉड्यूल ऑब्जेक्ट अंततः चलाता है और Default.aspx दस्तावेज़ में एक बाल अनुरोध बनाता है। हालांकि, क्योंकि इकाई निकाय को पहले से ही प्रबंधित कोड के टुकड़े से पढ़ा जा चुका है, बच्चे के अनुरोध को भेजने के लिए कोई इकाई निकाय उपलब्ध नहीं है।
  5. जब HTTP पाइपलाइन बच्चे के अनुरोध के लिए चलती है, तो हैंडलर फ़ाइलों के लिए हैंडलर हैंडलर-निष्पादन चरण के दौरान चलता है।
  6. क्योंकि कोई इकाई निकाय नहीं है, वहां कोई फॉर्म चर नहीं है और कोई दृश्य स्थिति नहीं है, और इसलिए .aspx पेज हैंडलर के लिए कोई जानकारी उपलब्ध नहीं है यह निर्धारित करने के लिए कि कौन सी घटना (यदि कोई है) उठाई जानी चाहिए। नतीजतन, प्रभावित .aspx पेज चलाने के लिए पोस्टबैक इवेंट हैंडलर में से कोई भी नहीं। आप निम्न तरीकों से इस व्यवहार के आसपास काम कर सकते हैं:

संपादित करें: हम एक समान मुद्दे पर चलते हैं तो दो साल पहले 3.5 की ओर पलायन ... और क्या हमने किया के रूप में वेब एप्लिकेशन परियोजना प्रकार के साथ VS2005 उपयोग करने के लिए था एक पुल है, तो हमारे पलायन का रास्ता था:

  • 1,1 2 करने के लिए।0
  • 2,0 3,5

लिए यह हमारी अंतिम उपाय था, और कि इस दस्तावेज़ जानने से पहले था।

+0

मेरा फॉर्म का मार्कअप

है, तो यह ठीक होना चाहिए। वैसे भी, सलाह के लिए thx। –

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