2014-07-24 12 views
6

को .NET Framework 3.5 पलायन हम नेट ढांचे से हमारे वेब अनुप्रयोगों माइग्रेट कर रहे हैं 3.5 करने के लिए 4.5के दौरान त्रुटि 4.5

हमारे विकास मशीनों पर, हम VS2012 उपयोग कर रहे हैं और विंडोज 7 चलाने के ओएस

इस प्रक्रिया में हम निम्न त्रुटि

आधार वर्ग क्षेत्र 'htmlTag' भी शामिल है, लेकिन उसके प्रकार (System.Web.UI.HtmlControls.HtmlGenericControl) नियंत्रण के प्रकार (System.Web.UI साथ संगत नहीं है। HtmlControls.HtmlElement)

इसी एचटीएमएल

<html xmlns="http://www.w3.org/1999/xhtml" class="no-js" runat="server" id="htmlTag"> 

है और (.cs.designer फ़ाइल)

protected global::System.Web.UI.HtmlControls.HtmlGenericControl htmlTag; 

पूर्ण स्टैक यहाँ का पता लगाने ..

System.Web इसी डिजाइनर कोड है .HttpParseException (0x80004005): बेस क्लास में 'htmlTag' फ़ील्ड शामिल है, लेकिन इसका प्रकार (System.Web.UI.HtmlControls.HtmlGenericControl) संगत नहीं है नियंत्रण के प्रकार (System.Web.UI.HtmlControls.HtmlElement)। System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder पर System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildSourceDataTreeFromBuilder पर System.Web.Compilation.BaseTemplateCodeDomTreeGenerator.BuildFieldDeclaration (ControlBuilder बिल्डर) (ControlBuilder बिल्डर, बूलियन fInTemplate, बूलियन topLevelControlInTemplate, PropertyEntry सार्वजनिक उपक्रम) (ControlBuilder बिल्डर पर System.Web.Compilation.BageCodeDomTreeGenerator.BageCodeDomTreeGenerator.BildCiscDassTembers() पर System.Web.Compilation.BaseCodeDomTreeGenerator.BuildSourceDataTree() पर System.Web पर System.Web.Compilation.TemplateControlCodeDomTreeGenerator.BuildMiscClassMembers() पर Boolean FInTemplate, Boolean topLevelControlInTemplate, PropertyEntry pse)। System.Web.Co पर System.Web.Compilation.BaseTemplateBuildProvider.GenerateCode (असेंबलीबिल्डर असेंबलीबिल्डर) पर .Compilation.BaseCodeDomTreeGenerT.GetCodeDomTree (CodeDomProvider codeDomProvider, StringResourceBuilder stringResourceBuilder, वर्चुअलपाथ वर्चुअलपाथ)। System.Web.Compilation.AssemblyBuilder.AddBuildProvider (BuildProvider BuildProvider) पर System.Web.Compilation.BildProvildCompiler.ProcessBuildProviders() पर System.Web.Compilation.BuildProvidersCompiler.PerformBuild() पर सिस्टम पर। mpilation.AssemblyBuilder.AddBuildProvider (BuildProvider BuildProvider)। Web.Compilation.BuildManager.CompileWebFile (virtualPath virtualPath) System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert पर System.Web.Compilation.BuildManager.GetVPathBuildResultInternal (virtualPath virtualPath, बूलियन noBuild, बूलियन allowCrossApp, बूलियन allowBuildInPrecompile, बूलियन throwIfNotFound, बूलियन ensureIsUpToDate) पर (HttpContext संदर्भ, वर्चुअलपैथ वर्चुअलपैथ, बूलियन नोबिल्ड, बूलियन अनुमतिक्रॉस ऐप, बूलियन अनुमतिबिल्ड इनप्रोम्पाइल, बूलियन फेंक इफ्नोटफाउंड, बूलियन फेंक इफॉटोडेट) System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory (वर्चुअलपाथ वर्चुअलपैथ, एचटीपी कॉन्टेक्स्ट संदर्भ, बूलियन अनुमति क्रॉस ऐप, बूलियन फेंकफॉन्फफाउंड) सिस्टे पर m.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath (वर्चुअलपाथ वर्चुअलपैथ, टाइपबैस टाइप करें, एचटीपी कॉन्टेक्स्ट संदर्भ, बूलियन अनुमतिक्रॉस ऐप) System.Web.UI.PageHandlerFactory.GetHandlerHelper (HttpContext संदर्भ, स्ट्रिंग अनुरोध टाइप, वर्चुअलपाथ वर्चुअलपाथ, स्ट्रिंग भौतिकपाथ) System.Web पर। HttpAplication.MaterializeHandlerExecutionStep.System.Web.HttpAplication.IExecutionStep.Execute() System.Web.HttpAplication.ExecuteStep (IExecutionStep चरण, बूलियन & पूर्णकालिक रूप से पूर्ण) त्रुटि विधि: शून्य AddBuildProvider (System.Web.Compilation।BuildProvider) सहायता लिंक:

इस मुद्दे हम इस लिंक http://support.microsoft.com/kb/941824/en-us

सार हम बस HTML में कटौती और इसे वापस पेस्ट में में दिए गए चरणों का पालन किया .. और डिजाइनर कोड को ठीक करने के रूप में इस प्रकार है

पुनर्जीवित कर रहा है
protected global::System.Web.UI.HtmlControls.HtmlElement htmlTag; 

यह समस्या को ठीक करने के लिए तार्किक तरीका दिखता है और यह कुछ मशीनों पर भी काम करता है लेकिन उसी फिक्स ने अन्य डेवलपर मशीनों पर कोड तोड़ दिया और विशेष रूप से कोड हमारे उत्पादन वेब सर्वर पर भी तैनात किया गया। कृपया ध्यान दें, हम अपने उत्पादन सर्वर पर विंडोज सर्वर 2008 आर 2 डेटासेंटर चलाते हैं और हमारे पास मशीन पर नेट फ्रेमवर्क 4.5 स्थापित है। निम्न त्रुटि हम परिवर्तन

आधार वर्ग क्षेत्र 'htmlTag' शामिल है, लेकिन उसके प्रकार (System.Web.UI.HtmlControls.HtmlElement) नियंत्रण (सिस्टम के प्रकार के साथ संगत नहीं है के बाद मिलता है। Web.UI.HtmlControls.HtmlGenericControl)

तुम देखो त्रुटि संदेश इस पोस्ट में सिर्फ पहली त्रुटि संदेश के विपरीत है

उन मशीनों अब जो त्रुटि है, अगर हम सिर्फ नियंत्रण के प्रकार छोड़ में HTMLGenericControl त्रुटि में

हम मशीनों है कि जो कि न और हम वास्तव में कुछ भी है कि संभवतः त्रुटि

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

क्या आप हमें अंत में इस मुद्दे

+0

भविष्य

सादर में इस समस्या से बचने के लिए web.config रास्ता दृश्य स्टूडियो करता स्वरूपित जब यह स्वचालित द्वारा संपादन करते हैं और स्रोत cnotrol में जांच करने की आवश्यकता 'हम नेट फ्रेमवर्क है 4.5 मशीन पर स्थापित '-> लेकिन ऐप के लिए ऐपपूल वास्तव में इसका उपयोग करने के लिए कॉन्फ़िगर किया गया है? (यानी वीएस में बहुत कुछ है जहां आप सीएलआर चुनते हैं ताकि आप सर्वर के पक्ष में चलाने के लिए सीएलआर चुन सकें)। (आवेदन पूल - सही चुनें - मूल सेटिंग्स -।नेट फ्रेमवर्क संस्करण – tolanj

+0

आईआईएस में पहले से ही नेट रनटाइम संस्करण 4.0 –

+0

है क्या आपने web.config टाइप लाइनों की जांच की है? – tolanj

उत्तर

2

हल करने में मदद कर सकते हैं मैंने पाया स्वीकार करने के लिए इस मुद्दे को

गॉट का कारण यह मेरी गलती है और एक शर्मनाक उन्हें आसानी से ठीक था

डिफ़ॉल्ट रूप से जब एक परियोजना के लिए लक्ष्य ढांचे 4.5 संशोधित किया गया है, यह नीचे के रूप में web.config अद्यतन करता

<system.web> 
    <compilation debug="true" targetFramework="4.5"/> 
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> 
</system.web> 

सबसे पहले हमें एहसास नहीं हुआ कि वीएस 4.5. अपग्रेड को संशोधित करेगा जब हम 4.5 तक अपग्रेड करेंगे। दूसरा, हमारी वेब। कॉनफिग एक बड़ी फाइल है और यहां तक ​​कि यदि 1 पंक्ति संशोधित है, तो दुर्भाग्यवश दुर्भाग्यवश पूरी फ़ाइल को संशोधित के रूप में दिखाती है। इसलिए हम फाइल को स्रोत नियंत्रण में चेक-इन करने के लिए परेशान नहीं करते हैं जब तक कि हम इसे स्पष्ट रूप से हाथ से बदल नहीं देते। नतीजतन कुछ मशीनों के पास लक्ष्य फ्रेमवर्क विशेषता 4.5 थी, जबकि अन्य के पास यह नहीं था। यह मशीनों पर असंगत व्यवहार बताता है। हम शायद,

शिव

+0

उपयोगी। धन्यवाद। –

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