2012-07-31 2 views
2

엔티티 프레임 워크를 사용하여 연결을 열려고 할 때이 오류가 계속 발생합니다. 데이터베이스에서 모델을 전혀 문제없이 업데이트 할 수 있지만 디버그에서 코드를 실행하면이 오류가 발생합니다. (윈도우 2008 VM에서 실행) "기본 공급자가 열지 못했습니다."

오류는 다음과 같습니다 나타나는 코드 조각 :

public partial class SpatialDatabase : global::System.Data.Objects.ObjectContext 
{ 
    try 
    { 
     using (EntityConnection conn = new EntityConnection(this.Connection.ConnectionString)) 
     { 
      conn.Open(); // <== fails here 

      EntityCommand cmd = conn.CreateCommand(); 
      ... 

이 Oracle 데이터베이스에 연결입니다.

이 코드는 분명히 다른 곳에서 실행되고 있으므로 연결과 관련된 느낌이 들었습니다. ODAC (Oracle for .NET) 드라이버를 사용하고 있습니다. 64 비트인지 32 비트인지는 모르지만 모델을 업데이트 할 때 작동하지만 디버그에서는 실행되지 않습니다. 의 app.config에서

(! 내가 보여주기 위해 무엇을 알고 있다면 추가 코드를 보여줄 것)

연결 문자열 :

<connectionStrings> 
    <add name="SpatialDatabaseContext" connectionString="metadata=res://*/SpatialDatabase.csdl|res://*/SpatialDatabase.ssdl|res://*/SpatialDatabase.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=ds_name_here;PASSWORD=password_here;PERSIST SECURITY INFO=True;USER ID=user_id_here&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

[편집]

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) 

[/ 편집]

[편집 2]

위의 붉은 청어가 될 수 있습니다. 나는 다시 달려 didn를, t 그 오류를 볼 수 있지만, 나는이의 InnerException 봤어 :

[Oracle.DataAccess.Client.OracleException] = {"ORA-12154: TNS:could not resolve the connect identifier specified"} 

[/ Edit2가]

[편집 3] 내가 대신 EFOracleProvider를 사용하려고

합니다. 그것은 확인을 구축,하지만 난 엔티티 모델을 생성하기 위해 갈 때이 얻을 :

Microsoft (R) EdmGen version 3.5.0.0 
Copyright (C) 2008 Microsoft Corporation. All rights reserved. 

error 7001: The provider did not return a ProviderManifestToken string. 
Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed. 
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) 

Generation Complete -- 1 errors, 0 warnings 

내가 32 비트 설치 Oracle 클라이언트 구성 요소의 64 비트 버전을 모두 가지고있다. 32 비트 또는 64 비트 실행 여부를 어떻게 선택합니까 ??

[/ EDIT3]

내가 링크의 몇 가지를 발견
+0

의 (실제 이름/PW없이) 당신의 .config 연결 문자열을 추가합니다. 이 오류는 구성 문제와 같습니다. – Kaido

+0

.config 연결 문자열 추가 - 구성 문제라고 생각합니다. 무엇을 모르겠습니다. ( – CompanyDroneFromSector7G

+0

"파이프에 대한 프로세스 없음"또는 무언가 – Kaido

답변

0

에 액세스 할 수있는 연결 단자에 연결 문자열 지점의

Data Source=(local) 

부분을 확인 정보를 위해, 아무 수정도 없었다.

나는 VM이 ​​내가에 문제가 다른 구축 한 포기 (를 내장 다른 잘 사람을!)

문제는 이제 사라 끝났다.

0

, 그들이 당신에게 도움이 될 것이라고 생각! 그러므로 여기에서 공유하십시오.

이 블로그 게시물을 참조 할 때 http://th2tran.blogspot.in/2009/06/underlying-provider-failed-on-open.html 이 섹션에서는이 블로그 기사에서 나와 공유하는 것에 대해 생각했습니다. "IIS에서 자격 증명 'NT AUTHORITY \ NETWORK SERVICE'로 데이터베이스에 액세스하려고합니다 .SQL Server Management Studio를 통해 db 설정을 확인했는데, 해당 계정이 연결이 허용 된 사용자 중 하나로 나열되어 있지 않습니다. 그래서 나는 그를 추가했고, 웹 애플리케이션은 성공적으로 연결할 수 있었다. "

시험해보십시오! 당신이 이미 신세를 한 경우

, 다음 링크를 참조하시기 바랍니다 :이 도움이 MSSQL Error 'The underlying provider failed on Open'

희망을!

+0

제안 해 주셔서 감사합니다 Varun - just checking : will t 내가 Visual Studio에서 IIS가 아닌 디버그에서 실행 중이고 SQL Server가 아닌 Oracle이 데이터베이스라고 생각하면 관련성이 있습니까? – CompanyDroneFromSector7G

0

위의 사항 중 하나라도 유용하지 않은 경우 죄송합니다. 그들이 도와 주면

그리고 오라클의 경우 http://www.sswug.org/articlesection/default.aspx?TargetID=44331, 다음 링크를 참조하십시오 : 당신이 [편집]에서 SQL Server 관련 일을 추가하기 때문에 난 그냥

어쨌든

, SQL 서버에서 다음을 확인하시기 바랍니다을 추가했다. .

http://ora-12154.ora-code.com/ http://blogs.msdn.com/b/dataaccesstechnologies/archive/2010/06/30/ora-12154-tns-could-not-resolve-the-connect-identifier-specified-error - 생성 - 연결된 - 서버 - 오라클 .aspx

감사합니다,

하기 Varun Shringarpure

+0

모든 링크가 SQL 서버와 관련이있는 것으로 보입니다. 아마도 명확하지 않지만 SQL Server를 전혀 사용하지 않고 있습니다. 제안 주셔서 감사합니다 :) – CompanyDroneFromSector7G

0

The server was not found or was not accessible.

의미를 찾을 수없는 서버에 연결 문자열을 가리 킵니다. 가장 일반적으로 (적어도 나를 위해) 그것이 잘못된 SQL Server 이름으로 인해 귀하의 경우 가능성이 비슷합니다. 당신이

(예. .edmx 파일의 app.config 같은 장소를 표시해야한다) 다른 도구/응용 프로그램

+1

나는 Oracle 서버에 연결하려고합니다. 그 메시지는 한 번 나타났습니다. 그리고 그것은 단지 빨간 청어라고 생각합니다.동일한 연결 세부 정보를 사용하여 데이터베이스에서 엔터티 모델을 다시 작성할 수 있으며 런타임에는 연결할 수 없습니다. – CompanyDroneFromSector7G

+0

나는 절대적 확실성을 위해 작업 파일에서 config를 복사하여 붙여 넣고 그 오류를 추적합니다 : http://ora-12154.ora-code.com/ – Kaido

0

연결 문자열에서 데이터 소스의 경우 TNSNames.ora의 항목이 아닌 전체 설명자를 사용해야합니다. 예를 들어,

`"data source=(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=**host_name**) (PORT=**1521**)) (CONNECT_DATA= (SERVER=dedicated) (SID=**db_instance**)))"` 

대신

"data source=**my_tns_ds**" 
관련 문제