2010-08-13 19 views
8

को हल नहीं कर सका मैं एएसपी क्लासिक एप्लिकेशन से ऑरैकल डीबी से कनेक्ट करने का प्रयास कर रहा हूं, हालांकि मैं ओआरए -12154 त्रुटि में चल रहा हूं।ओरेकल (0x80004005) ओआरए -12154: टीएनएस: कनेक्ट पहचानकर्ता

  1. TNSNAMES.ORA ठीक से कॉन्फ़िगर किया गया है

    DBSOURCE.ABcom = (वर्णन = (ADDRESS_LIST = (ADDRESS = (प्रोटोकोल = टीसीपी) (मेजबान = CDBcom) (पोर्ट = 1231)) ) (CONNECT_DATA = (SERVICE_NAME = DBSOURCE) ) )

  2. मैं

    TNSping कर सकते हैं 10

    C: \ दस्तावेज़ और सेटिंग्स \ USERID.A> DBSOURCE

    टीएनएस पिंग 32-बिट Windows के लिए उपयोगिता TNSping: संस्करण 10.2.0.4.0 - उत्पादन पर 09-मार्च -2 011 09:12:31

    कॉपीराइट (सी) 1 99 7, 2007, ओरेकल। सर्वाधिकार सुरक्षित।

    प्रयुक्त पैरामीटर फ़ाइलें: C: \ ओरेकल \ उत्पाद \ 10.2.0 \ client_1 \ नेटवर्क \ व्यवस्थापक \ sqlnet.ora

    प्रयुक्त TNSNAMES उर्फ ​​ संपर्क करने के लिए (प्रयास कर रहा है हल करने के लिए एडाप्टर वर्णन = (ADDRESS_LIST = (ADDRESS = (प्रोटोकोल = टीसीपी) (मेजबान = CDBcom) (पोर्ट = 1231))) (CONNECT_DATA = (SERVIC E_NAME = DBSOURCE))) ठीक (30 msec)

  3. मैं एक ODBC बना सकते हैं कनेक्शन और मैंने कनेक्शन का परीक्षण किया है जो सफल है।

  4. मैं ओरेकल डीबी से टॉड के माध्यम से कनेक्ट कर सकता हूं।
  5. मैं अपने sqlnet.ora फ़ाइल की जांच किए

    NAMES.DEFAULT_DOMAIN = ABcom

    SQLNET.AUTHENTICATION_SERVICES = (कोई नहीं)

    NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)

  6. मैंने यह भी जांच लिया है कि TNSNAMES.ORA मेरे सिस्टम पथों में से एक है।

  7. मैं sqlplus

यहाँ के साथ डीबी से कनेक्ट कर सकते कोड कि त्रुटि

dim CnnStr 

Set Cnn = Server.CreateObject("ADODB.Connection") 

CnnStr="Provider=MSDAORA.1;Password=pass;User ID=user;Data Source=DBSOURCE" 

Cnn.Open CnnStr 

मैं खिड़कियों चला रहा हूँ XP प्रो 32 बिट SP3

मैंने फेंकता है एक सहकर्मी मशीन पर इसका परीक्षण किया गया है और एएसपी ऐप में कोई समस्या नहीं है, क्या मैं कहीं कॉन्फ़िगरेशन खो रहा हूं या क्या मैंने अपनी कॉन्फ़िगरेशन गड़बड़ की है?

सभी की मदद के लिए धन्यवाद!

उत्तर

4

ऐसा लगता है सभी सेटिंग्स की जाँच की गई है, लेकिन यहाँ है कुछ परेशानी शूटिंग के लिए मेरी सुझाव:

  • कैसे खाते आईआईएस के तहत चल रहा है पर प्रतिबंध के बारे में? क्या इसमें TNSNAMES पढ़ने के लिए फ़ाइल अनुमतियां हैं? क्या आपने उपयोगकर्ता को और अधिकार देने की कोशिश की है। आईआईएस को स्थानीय एएस सिस्टम अकाउंट के साथ भी चलाएं? इसे वापस जिस तरह से वापस रखना याद रखें।
  • आपको यकीन है कि तीसरे पक्ष के ऐप ऐसे एंटी वायरस या फ़ायरवॉल नहीं हैं जो पहुंच को प्रभावित/अवरुद्ध कर सकते हैं। (उन्हें अक्षम परीक्षण करने के लिए, लेकिन करने के लिए मत भूलना पुन: सक्षम :)

(क्या आप अंत में इसे हल करने की क्या किया?)

+0

धन्यवाद-बहुत कुछ! मेरे समूह में उपयोगकर्ता आईडी \ USERS या TNSNAMES.ORA फ़ाइल में अनुमति के लिए उपयोगकर्ता नामों को शामिल करने के बाद यह काम किया! – ChickSentMeHighE

+0

एक आकर्षण की तरह काम किया। धन्यवाद। यह एक था एक $$ में गंभीर दर्द। – temarsden

2

"यह एक सहकर्मी मशीन पर काम करता है लेकिन मेरा नहीं है।"

ओआरए -12154 आमतौर पर एक कॉन्फ़िगरेशन समस्या है, और यह निश्चित रूप से आपके मामले में ऐसा प्रतीत होता है। संक्षिप्त जवाब यह है कि अपनी मशीन की तुलना अपने सहयोगी के साथ करें और पता लगाएं कि अंतर क्या है। जांच करने के लिए

चीजें शामिल हैं:

  • TNANAMES.ORA फ़ाइल
  • SQLNET.ORA फ़ाइल
  • LISTENER.ORA फ़ाइल
(यदि आप एक स्थानीय डेटाबेस का उपयोग कर रहे हैं)
+0

मूलतः thats क्या यद्यपि भी, फिर भी मेरी सह कार्यकर्ता (किसका कनेक्शन काम करता है से TNSNAMES.ora और SQLNET.ora कॉपी करने के बाद मैं) यह अभी भी समस्या को हल नहीं करता है – ChickSentMeHighE

+0

अजीब बात यह है कि वह डेटाबेस को tnsping के माध्यम से पिंग करने में सक्षम है। एक ओडीबीसी कनेक्शन बनाना और ओडीबीसी इंटरफ़ेस से इसका परीक्षण करना ठीक काम करता है। Sqlplus के माध्यम से कनेक्ट भी काम करता है ... – Mike

+0

कुछ ऐसी सेवा हो सकती है जिन्हें एक बदले TNSNAMES.ORA या रजिस्ट्री सेटिंग में बदलाव करने के लिए पुनरारंभ करने की आवश्यकता हो)। शायद मेजबान को सीधे निर्दिष्ट करके TNSNAMES.ORA को बाईपास करने का प्रयास करें: पोर्ट: सेवा –

0

समस्या/नेटवर्क/व्यवस्थापक (या जहां भी आपकी tnsnames.ora फ़ाइल रहता है) के साथ मशीन पर पर्यावरण परिवर्तनीय TNS_ADMIN के मान को सेट करने का प्रयास करें और देखें कि क्या इससे मदद मिलती है।

+0

उत्तर देने के लिए धन्यवाद, हालांकि इसने समस्या को हल नहीं किया :( – ChickSentMeHighE

1

यदि आप 64-बिट ओएस और ऑरैकल 10 चला रहे हैं तो ऑरैकल के लिए सभी पैच इंस्टॉल करने का प्रयास करें। मेरे .NET कार्यक्रम को छोड़कर, मेरे साथ कुछ ऐसा ही हुआ, एसक्यूएल प्लस और अन्य सभी ने काम किया। मैं "प्रोग्राम फ़ाइलें (x86)" फ़ोल्डर से एक .Net प्रोग्राम चला रहा था। पैच स्थापित करना इसे ठीक करता है।

+0

क्या आप कृपया मुझे बता सकते हैं कि हमें कौन सा पैच स्थापित करने की आवश्यकता है। यह बहुत अच्छा होगा यदि आप लिंक साझा कर सकते हैं। धन्यवाद !! – SharpCoder

2

क्या आपके पास कई ओरेकल घर हैं? जांचें कि आईआईएस अन्य ORA_HOME (और इस प्रकार आपकी tnsnames.ora प्रविष्टि नहीं ढूंढ रहा है) को इंगित करता है। मैं आईआईएस कॉन्फ़िगरेशन से बहुत परिचित नहीं हूं, इसलिए मैं अपने पीसी पर सभी tnsnames.ora में टीएनएस प्रविष्टि जोड़कर इसका परीक्षण करूंगा।

1

संभावना समस्या से ओरेकल निर्देशिका पर पढ़ने की अनुमति का अभाव है उपयोगकर्ता आईआईएस चल रहा है के रूप में।

@Derick कहते हैं, अस्थायी रूप से अनुमति सेट $ ORACLE_HOME निर्देशिका (हर कोई = पूर्ण नियंत्रण) पर व्यापक खुले, आईआईएस, और परीक्षण को पुनरारंभ करें। जब यह काम करता है, तो आईआईएस उपयोगकर्ता को उस निर्देशिका के खिलाफ पढ़ने की अनुमति दें।

आप Process Monitor from Microsoft SysInternals का उपयोग करके इस समस्या की पुष्टि भी कर सकते हैं, और DLFs खोलने या TNSNAMES.ORA फ़ाइल को पढ़ने के लिए CreateFile (...) API कॉल के दौरान विफलता संदेश देख सकते हैं। कर्सर के माध्यम से चयन करते समय अस्थायी फ़ाइलें काम करने के तरीके को देखते हुए, आपको कुछ निर्देशिकाओं में आईआईएस उपयोगकर्ता लिखने की अनुमति भी देनी पड़ सकती है।

0

मुझे एक ही समस्या थी और एक साधारण समाधान मिला। आपको किसी भी कॉन्फ़िगरेशन फ़ाइलों को संशोधित करने की आवश्यकता नहीं है।उम्मीद यह आपकी मदद कर सकते हैं:

CREATE DATABASE LINK server2_db 
    CONNECT TO dbuser IDENTIFIED BY pwd USING 
'(DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = server_2)(PORT = port_num)) 
    ) 
    (CONNECT_DATA = 
    (SERVICE_NAME = server2_db) 
    ) 
)'; 

समाधान यहाँ से है: http://oraclequirks.blogspot.com/2008/11/ora-12154-tnscould-not-resolve-service.html

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

  • कोई संबंधित समस्या नहीं^_^