2009-04-24 23 views
13

मैंने एक ही मुद्दे पर पोस्ट किए गए कई अन्य प्रश्नों के माध्यम से पढ़ा है, लेकिन मुझे अभी भी कारण समझ में नहीं आता है और इसे कैसे रोकना है।एएसपी.नेट भ्रष्ट असेंबली "फ़ाइल या असेंबली लोड नहीं कर सका App_Web_ *"

मेरे मामले में, यह उत्पादन सर्वर पर होता है। मुझे वही त्रुटि मिलती है जिसे अन्य प्रश्नों में वर्णित किया गया है, और मैं इसे असेंबली को बिन निर्देशिका में दोबारा कॉपी करके हल करता हूं। वे फ़ाइलों को फिर से सम्मिलित नहीं कर रहे हैं, वे वही हैं जो पहले वहां थे - दोबारा कॉपी किए गए, और फिर यह बिना किसी समस्या के काम करना शुरू कर देता है।

इसके बारे में अजीब बात यह है कि मैं का उपयोग कर रहा वेब तैनाती परियोजनाओं फ़ोल्डर आधारित dll के में मेरी विधानसभा फ़ाइलों के सभी नाम बदलने के लिए है। App_Web_jt8nxllz.dll के बजाय फ़ोल्डर.dll और folder.subfolder.dll। फिर भी त्रुटि अभी भी मूल App_Web_jt8nxllz.dll फ़ाइल नाम देती है।

C:\WINDOWS\Microsoft.NET\Framework[64]\v...\Temporary ASP.NET Files फ़ोल्डर की सामग्री को हटाने काम करता है और यह सब ठीक है, लेकिन क्या कोई इस त्रुटि को होने से रोकने के बारे में जानता है? साथ ही, आईआईएस को बंद करना या इसे पुनरारंभ करना वास्तव में उत्पादन सर्वर पर होने पर इतना व्यवहार्य नहीं है। शायद टेम्पलेट फ़ोल्डर को शेड्यूलर पर स्वचालित रूप से साफ कर रहे हैं?

क्या असली मुद्दा यहाँ है? क्या ऐसा कुछ खास है जो ऐसा होने का कारण बनता है? साइट किसी भी समस्या के साथ हमला नहीं होगी, और फिर अचानक, एक पूरा फ़ोल्डर काम करना बंद कर देता है और यह त्रुटि उत्पन्न करता है।

Could not load file or assembly 'App_Web_jt8nxllz, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
Exception type 'System.IO.FileNotFoundException' was caught. 
Source: App_Web_whv5zsvd 
Target Site: Void __BuildControlTree(ASP.artists_controls_artistheader_ascx) 
Stack Trace: 
    at ASP.artists_controls_artistheader_ascx.__BuildControlTree(artists_controls_artistheader_ascx __ctrl) 
    at ASP.artists_controls_artistheader_ascx.FrameworkInitialize() 
    at System.Web.UI.UserControl.InitializeAsUserControlInternal() 
    at System.Web.UI.UserControl.InitializeAsUserControl(Page page) 
    at ASP._artists_artist_master.__BuildControlctlArtistHeader() 
    at ASP._artists_artist_master.__BuildControlctlContent(Control __ctrl) 
    at System.Web.UI.CompiledTemplateBuilder.InstantiateIn(Control container) 
    at ASP.master_mysite_master.__BuildControlMainContent() 
    at ASP.master_mysite_master.__BuildControlform1() 
    at ASP.master_mysite_master.__BuildControlBody() 
    at ASP.master_mysite_master.__BuildControlTree(master_mysite_master __ctrl) 
    at ASP.master_mysite_master.FrameworkInitialize() 
    at System.Web.UI.UserControl.InitializeAsUserControlInternal() 
    at System.Web.UI.MasterPage.CreateMaster(TemplateControl owner, HttpContext context, VirtualPath masterPageFile, IDictionary contentTemplateCollection) 
    at System.Web.UI.MasterPage.get_Master() 
    at System.Web.UI.MasterPage.ApplyMasterRecursive(MasterPage master, IList appliedMasterFilePaths) 
    at System.Web.UI.Page.ApplyMasterPage() 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

उत्तर

3

मुझे इसके साथ मारा गया है, इसके लिए एक हॉटफिक्स है।

http://weblogs.asp.net/scottgu/archive/2007/04/11/public-hotfix-patch-available-for-asp-net-compilation-issues.aspx

हालांकि यह अब और नए मशीनों/सेटअप के साथ नहीं होता है।

+0

यह हॉटफिक्स सभी के लिए काम नहीं करता है। आप इस पोस्ट http://forums.asp.net/t/986130.aspx पर कुछ मुद्दों के बारे में अधिक पढ़ सकते हैं – YetAnotherDeveloper

8

मेरी साइट को लिंक न करने के लिए, लेकिन मैंने इस मुद्दे में भाग लिया है और मैंने a blog post on the topic लिखा है। इसे देखें, इसमें इस विषय पर अधिक जानकारी के लिंक हैं। लेकिन यह यहां योग अप करने के लिए विवरण हैं:

समस्या:

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

संभव कार्य के आसपास (s) या अस्थायी ठीक करता है:

1) वेब में गलत पर संकलन टैग के बैच संपत्ति की स्थापना करके।कॉन्फ़िग फ़ाइल

<compilation debug="false" batch="false" /> 

2) आप यह भी कम कर सकते हैं कि कितनी बार यह numRecompileBeforeAppRestart संपत्ति द्वारा निर्धारित करके होता है:

<compilation debug="false" numRecompilesBeforeAppRestart="50" /> 

अधिक जानकारी के

सुधार जारी करने के लिए इसके बाद के लिए KB Article 934839 देखें पहले से ही हो चुका है:

1) अस्थायी एएसपी.Net फ़ाइलों को हटाएं (यह लेता है साइट के नीचे)

2) कोड फ़ाइल को पुन: संकलित, संपादित और सहेजने के लिए अभिभावक/बाहरी नियंत्रण को मजबूर करें। # 1 से ठीक होने के लिए यह एक बेहतर विकल्प है क्योंकि यह वेबसाइट को नीचे नहीं लाता है।

मेरे सुझाव:

1) सबसे पहले मुझे लगता है कि हम ऊपर से अस्थायी # 1 ठीक स्थान पर रखा, यह भविष्य में सभी मुद्दों पर नहीं पहुंच पाएंगे चाहिए और केवल जवाब हम की जरूरत हो सकता है।

2) दूसरा मैं क्यूए पर्यावरण में माइक्रोसॉफ्ट से 934839 हॉटफिक्स को डाउनलोड और स्थापित करता हूं ताकि यह सत्यापित किया जा सके कि इससे कोई समस्या नहीं आती है। क्यूए में हॉटफिक्स का परीक्षण करने के कुछ समय बाद मैं हॉटफिक्स को इस समस्या के लिए स्थायी फिक्स स्थापित करने के लिए स्थापित करूंगा। इस समय हम # 1 के आसपास अस्थायी काम को हटा सकते हैं।

नोट: Temp fix # 1 डालने के बाद मुझे समस्या फिर से नहीं मिली है। मेरे पास 12 महीने से अधिक समय तक यह तय हुआ है और सब अच्छा है!

0

temp फ़ाइलों को साफ़ करना या web.config बदलना मेरे लिए काम नहीं किया। मेरे लिए, यह तय किया कि यह मेरे कंप्यूटर को पुनरारंभ कर रहा था।

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