OLEDBConnection.Open () 'निर्दिष्ट निर्दिष्ट त्रुटि' उत्पन्न करता है

मेरे पास एक ऐसा एप्लिकेशन है जो फ़ाइल सिस्टम में एक्सेल .xls फ़ाइल अपलोड करता है, ऑब्जेक्ट इंस्टेंस पर .open() विधि का उपयोग कर फ़ाइल को ओल्डबोननेक्शन ऑब्जेक्ट के साथ खोलता है और फिर डेटा को डेटाबेस में संग्रहीत करता है। फ़ाइल सिस्टम में फ़ाइल का अपलोड और लेखन ठीक काम करता है लेकिन हमारे उत्पादन सर्वर केवल पर फ़ाइल खोलने का प्रयास करते समय मुझे एक त्रुटि मिलती है। एप्लिकेशन दो अन्य सर्वरों (विकास और परीक्षण सर्वर) पर ठीक काम करता है।

निम्न कोड अपवाद में एक 'निर्दिष्ट त्रुटि' उत्पन्न करता है। संदेश।

उद्धरण:

        System.Data.OleDb.OleDbConnection x = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + location + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
        try
        {
            x.Open();
        }
        catch (Exception exp)
        {
            string errorEmailBody = " OpenExcelSpreadSheet() in Utilities.cs.  " + exp.Message;
            Utilities.SendErrorEmail(errorEmailBody);
        }

: अंतिम उद्धरण

सर्वर का सी: \\ temp और c: \ दस्तावेज़ और सेटिंग्स \\ aspnet \ स्थानीय सेटिंग्स \ temp फ़ोल्डर दोनों \ aspnet पूर्ण नियंत्रण देते हैं।

मेरा मानना ​​है कि किसी प्रकार की अनुमति समस्या है लेकिन नोट किए गए फ़ोल्डर्स और फ़ोल्डर/निर्देशिका जहां एक्सेल फ़ाइल अपलोड की गई है, के बीच कोई अंतर नहीं दिख रहा है। फ़ाइल को सहेजने और इसे खोलने के लिए एक ही स्थान का उपयोग किया जाता है और विधियां मेरे वर्कस्टेशन और दो वेब सर्वर पर काम करती हैं। विंडोज 2000 एसपी 4 सर्वर।

0

6 उत्तर

आंतरिक अपवाद में कुछ भी? क्या यह 64-बिट एप्लीकेशन है? ओएलडीडीबी प्रदाता 64-बिट में काम नहीं करते हैं। आपको अपना आवेदन लक्ष्य x86 होना चाहिए। मेरे 64-बिट कंप्यूटर पर डीबी एक्सेस खोलने का प्रयास करते समय त्रुटि मिलने पर यह मिला।

0
जोड़ा

हाँ। मैंने भी ऐसा किया। IMEX = 1 को बाहर निकाला, विस्तारित गुणों को बाहर निकाला, आदि। मैंने इसे dev और test सर्वर पर तोड़ने में कामयाब रहे। :) मैंने उनको एक समय में एक बार में रखा जब तक कि यह देव पर तय नहीं हुआ और फिर परीक्षण किया गया लेकिन अभी भी प्रोड पर कोई काम नहीं है।

0
जोड़ा

यदि आप प्रतिरूपण का उपयोग कर रहे हैं तो आपको एस्पनेट उपयोगकर्ता के अतिरिक्त/प्रतिरूपण उपयोगकर्ता को अनुमति देना होगा।

0
जोड़ा

मुझे अनुमतियों की चीज़ पर उस त्रुटि को मिला है, लेकिन ऐसा लगता है कि आपके पास वह कवर है। मैंने इसे कनेक्शन स्ट्रिंग में झंडे में से एक के साथ भी देखा है - आप उस के साथ खेल सकते हैं।

0
जोड़ा
वास्तव में? इस जवाब ने आपकी समस्या हल की?
जोड़ा लेखक juan, स्रोत

एकल कोट्स में स्थान लपेटने का प्रयास करें

System.Data.OleDb.OleDbConnection x = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + location + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
0
जोड़ा

जबकि अनुमति समस्या अधिक आम हो सकती है, आप Windows फ़ाइल सिस्टम/एक्सेस जेट डीबी इंजन कनेक्शन सीमाओं से इस त्रुटि का सामना कर सकते हैं, 64/255 मुझे लगता है। यदि आप 255 एक्सेस पढ़ने/लिखने समवर्ती कनेक्शन या प्रति प्रक्रिया 64 (?) कनेक्शन सीमा को बस्ट करते हैं तो आप यह वही त्रुटि प्राप्त कर सकते हैं। कम से कम मैं उस एप्लिकेशन में आया हूं जहां कनेक्शन लगातार बनाए जा रहे थे और कभी भी ठीक से बंद नहीं हुए थे। एक साधारण <�कोड> Conn.close (); में गिरा दिया गया और जीवन अच्छा था। मुझे लगता है कि एक्सेल के समान मुद्दे हो सकते हैं।

0
जोड़ा
एक साइड नोट के रूप में: Conn.Dispose() स्पष्ट रूप से कनेक्शन बंद नहीं करता है।
जोड़ा लेखक Residuum, स्रोत