2011-01-10 8 views
6

मैं क्लासिक एएसपी पृष्ठों को विंडोज 2008 64 बिट आर 2 बॉक्स पर निष्पादित करने की कोशिश कर रहा हूं।क्लासिक एएसपी: C0000005 निष्पादन पर त्रुटि

प्रारंभ में समस्या डीएलएस पंजीकरण के साथ थी: यह अब तय है। Register DLL file on Windows Server 2008 R2

अब जब मैं पृष्ठ तक पहुँचने का प्रयास है कि मैं इस त्रुटि मिलती है

सक्रिय सर्वर पृष्ठ त्रुटि 'एएसपी 0241'

CreateObject अपवाद

index.asp

'(शून्य)' का CreateObject अपवाद C0000005 का कारण बनता है।

सर्वर वस्तु त्रुटि 'एएसपी 0177: c0000005'

जब मैं CreateObject के लिए .. मैं इस त्रुटि

सक्रिय सर्वर पृष्ठ त्रुटि 'एएसपी के साथ खत्म Server.CreateObject से कोड बदलने 0115 'अप्रत्याशित त्रुटि index.asp

बाहरी वस्तु में एक ट्रैपबल त्रुटि (C0000005) हुई। स्क्रिप्ट चलना जारी नहीं रख सकता है।

मैंने जो कुछ भी किया - चेक और व्यवस्थापक अधिकार आदि की जांच की। एप्लिकेशन पूल कोई प्रबंधित कोड + क्लासिक मोड पर सेट नहीं है।

इसे ठीक करने के लिए कोई विचार?

+1

आप किस वस्तु का निर्माण कर रहे हैं? – bzlm

+0

वह वस्तु क्या है जिसे आप बनाने की कोशिश कर रहे हैं? – Sparky

+0

यह एक कस्टम ऑब्जेक्ट है। डीबी से कुछ सामान प्राप्त करता है। मेरे पास डीएल पंजीकृत है। कोई स्रोत कोड नहीं था। –

उत्तर

2

आप इसे एएसपी में ठीक करने के लिए नहीं जा रहे हैं। सी 0000005 एक्सेस उल्लंघन उल्लंघन है। ऐसा तब होता है जब कोड स्मृति को पढ़ने का प्रयास करता है जिसे उसने आवंटित नहीं किया है।

डीएलएल लोड होने या ऑब्जेक्ट के निर्माण के दौरान कुछ खराब कर रहा है।

क्या आपने डीएलएल को एक साधारण .vbs फ़ाइल के साथ परीक्षण किया है?

+1

यदि आप इसे वीबीएस से आजमाने की कोशिश कर रहे हैं, तो vSPcript.exe का उपयोग करना सुनिश्चित करें जो एएसपी आईएसएपीआई डीएल के 'बिहार' से मेल खाता है। – Mark

+0

यह वास्तव में दिलचस्प है। मैंने ऑब्जेक्ट बनाने के लिए एक ऑनलाइन vbs फ़ाइल बनाई है। जब मैंने अपनी निर्देशिका से निष्पादित किया तो मुझे यह त्रुटि मिली "(शून्य): 0x800700C1" जब मैंने डीएल और वीबीएस फ़ाइल को c: \ windows \ syswow64 \ पर कॉपी किया और फ़ाइल को निष्पादित किया .. मुझे यह त्रुटि मिली "माइक्रोसॉफ्ट कंसोल P1: ठिकानों स्क्रिप्ट मेजबान काम कर " eventvwr से" समस्या हस्ताक्षर बंद कर दिया है cscript.exe P2: 5.8.7600.16385 पी 3: 4a5bc670 पी 4: StackHash_0a9e पी 5: 0.0.0.0 पी 6: 00000000 P7: 02ca0068 पी 8: सी 0000005 पी 9: 00000008 पी 10: " –

+0

@ ब्रोकन लिंक: जब तक आप syswow64 फ़ोल्डर में विशेष रूप से [c | w] script.exe का उपयोग नहीं करते हैं, तो आप दौड़ेंगे 64 बिट संस्करण में है लेकिन आपका डीएलएल 32 बिट होगा। सी 1 त्रुटि (जो ERROR_BAD_EXE_FORMAT है) शायद इसके बारे में शिकायत कर रही है। जब आप सीएसक्रिप्ट के 32 बिट संस्करण को चलाते हैं तो आपको एएसपी में एक ही त्रुटि दिखाई दे रही है। यह पुष्टि करता है कि आपका डीएल टूट गया है और इसे ठीक करने की जरूरत है। – AnthonyWJones

-2

आप इस ब्लॉग प्रविष्टि, शीर्षक की जाँच करने के लिए "क्लासिक एएसपी (एएसपी 3.0) 32 बिट COM ऑब्जेक्ट के साथ 64 बिट पर काम नहीं करता" चाहते हो सकता है http://blogs.msdn.com/b/robgruen/archive/2005/05/26/422328.aspx

यह थोड़ा दिनांकित और लेखक को गलत तरीके से एएसपी को संदर्भित करता है एक आईएसएपीआई फ़िल्टर के रूप में हैंडलर (यह एक एक्सटेंशन है, फिल्टर नहीं), लेकिन अन्यथा जानकारी अच्छी लगती है।

यदि एएसपी हैंडलर केवल 64 बिट के रूप में संकलित है, तो आप इसमें 32 बिट COM ऑब्जेक्ट लोड नहीं कर पाएंगे, इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं।

लेखक COM + समाधान के बारे में कुछ बताता है। मुझे एहसास है कि 32 बिट आउट प्रक्रिया COM + पैकेज इस 32 बिट COM ऑब्जेक्ट को लोड करने में सक्षम होगा और आपका एएसपी पेज इस COM + पैकेज पर क्रॉस प्रोसेस कॉल कर सकता है।

अच्छी किस्मत, मार्क

1

मैं बिल्कुल वैसा ही त्रुटि थी।

मेरे मामले में C0000005 त्रुटि अनुपलब्ध निर्भरता के कारण हुई थी।

ProcessMonitor इसे ढूंढने में मेरी सहायता करता है। (प्रक्रिया द्वारा फ़िल्टर करें, और "नाम नहीं मिला" चेक करें) Name not found on dll

आवश्यक फ़ाइल को सही जगह पर कॉपी करने से मेरी समस्या हल हो गई। (मेरे मामले में VB6FR.dll फ्रेंच में vb6 के लिए एक आवश्यक निर्भरता थी।)

0

मैंने इसे भी पीछे छोड़ने में कई घंटे बिताए।

मेरे मामले में, यह डीबी कॉल के बीच इसे बंद किए बिना कई बार एक रिकॉर्डसेट ऑब्जेक्ट का पुन: उपयोग करने के कारण हुआ था। कोड कई समान उदाहरणों में स्पष्ट मुद्दे के बिना काम कर रहा था, और फिर उनमें से एक ने प्रक्रिया को सहन करना बंद कर दिया।

त्रुटि तब हुई जब मैंने पृष्ठ के अंत में रिकॉर्डसेट को बंद करने का प्रयास किया, जिसने समस्या निवारण को और अधिक कठिन बना दिया।

मैंने कोड साफ़ कर दिया, यह सुनिश्चित किया कि कॉल के बीच रिकॉर्डसेट बंद हो गया था, और इससे इस मुद्दे को हल किया गया।

0

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

0

अपने स्वयं के कॉम नियंत्रण का उपयोग करने की कोशिश करते समय बस इसी त्रुटि में भाग गया और मेरे मामले में यह डीबग मोड में संकलित मेरे डीएल के कारण हुआ।

डिबग मोड में
  1. भागो आईआईएस:

    है कि चारों ओर दो तरीके हैं। 32 बिट के लिए आप निम्न पंक्ति का उपयोग करते हैं: सी: \ विंडोज \ SysWOW64 \ inetsrv> w3wp.exe -debug

    ध्यान दें कि आपको आईआईएस सेवा को रोकना है और 64 बिट के लिए आप System32 में से किसी एक का उपयोग करते हैं।

  2. एक रिलीज़ संस्करण :)

0

एक बार से csv फ़ाइल डेटा अधिक लोड हो रहा है, जबकि मैं एक ही त्रुटि थी संकलित करें। चरण 1 - सबसे पहले सीएसवी डेटा को temp तालिका में स्थानांतरित करने के लिए एक temp तालिका बनाएं और फिर मुख्य तालिका में जाएं और डेटा स्थानांतरित होने के बाद temp तालिका हटाएं। इसे प्रोग्रामेटिक रूप से किया जाना है।

चरण 2 - mysql पर जाएं और डेटाबेस का चयन करें और इस क्वेरी का उपयोग करें (पूर्ण प्रक्रिया दिखाएं;) ब्रैकेट के बिना उपयोग करें। यह आपको चल रहे ऑब्जेक्ट्स की स्थिति दिखाएगा। अगर आपको "स्लीप" के रूप में स्थिति के साथ कोई ऑब्जेक्ट मिलता है तो फ़ाइल को अपलोड करने के दूसरे प्रयास से पहले इसे साफ़ करने की आवश्यकता है। आमतौर पर डिफ़ॉल्ट प्रतीक्षा समय लगभग 28000 सेकंड होता है। आवश्यकता के अनुसार आपको इसे कम करने की जरूरत है। प्रतीक्षा समय को कम करने के लिए कोड है (सेट ग्लोबल wait_timeout = 5;)। ब्रैकेट के बिना प्रयोग करें। इसका उपयोग MySQL है। यह आपके वैश्विक प्रतीक्षा समय को 5 सेकंड पर फिर से सेट करेगा, (आपकी आवश्यकताओं के अनुसार बदलें)। यह आपकी समस्या का समाधान करना चाहिए। शुभकामनाएं।

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