ODAC & C # - TNS : 연결 시간 초과가 발생했습니다 - VS2005 디버거를 통해서만 연결

StackOverflow https://stackoverflow.com/questions/3298104

문제

나는 오라클에 새로운 것이고, 내가 직면하고있는 문제가있다. IDE-Visual Studio 2005에서 응용 프로그램을 실행하면 데이터베이스 연결이 원활하게 설정되어 있지만 응용 프로그램의 설치된 버전을 실행하면 DB 연결이 실패하고 TNS : Connect Timeout이 오류가 발생했습니다.

나는 SQLNET.ORA 및 유사한 솔루션을 온라인으로 발견했지만 문제를 해결할 수 없었습니다. IDE와 설치를 통해 실행중인 응용 프로그램이 동일한 PC에 있기 때문에이 일이 일어납니다. TNSNAMES.ORA 파일이 올바르게 편집되었고 Visual Studio에서 직접 실행되는 응용 프로그램 인스턴스를 연결할 수 있습니다.

public bool connectToDatabase(string dbConnStr)
{
    try
    {
        databaseConnection = dbConnStr;
        OracleConnection dbConn = new OracleConnection(databaseConnection);
        if (dbConn == null)
        {
            CreateDLLLogFiles.ErrorLog(CreateDLLLogFiles.FileName, "Connection object is null");
            return false;
        }
        if (dbConn.State.ToString().Equals("Closed", StringComparison.OrdinalIgnoreCase))
        {
            CreateDLLLogFiles.ErrorLog(CreateDLLLogFiles.FileName, "DB connection - " + dbConn.ConnectionString);
            dbConn.Open();
            return true;
        }
    }
    catch (Exception ex)
    {
        CreateDLLLogFiles.ErrorLog(CreateDLLLogFiles.FileName, ex.Message + "\n" + ex.StackTrace);
        CreateDLLLogFiles.ErrorLog(CreateDLLLogFiles.FileName, "DB String - " + databaseConnection);

        return false;
    }
    return false;
}
.

스택 추적은 다음과 같이 읽습니다.

7/22/2010 6:38:51 PM    ORA-12170: TNS:Connect timeout occurred
   at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
   at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at SQL.connectToDatabase(String dbConnStr)
.

tnsnames.ora는 다음과 같습니다 :

MySource =
  (DESCRIPTION =
    (CONNECT_TIMEOUT=180)(RETRY_COUNT=2)
    (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 125.63.77.232)(PORT = 1521)))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MySource )
    )
  )
.

디버거를 통해 ContextSwitchDeadlock 오류가 발생했기 때문에 StathRead에서 Main ()에서 StathRead에서 MTATHread로의 속성을 변경했습니다. 더 이상 ContextSwitchDeadLock이 없으며 계속해도 연결 문제가 지속됩니다.

나는 당신이 문제에 빛을 흘리게 할 수 있기를 바라고 있었고, 나는 머리카락을 당기는 것에 가깝습니다. 어떤 통찰력이 감사 할 것입니다.

도움이 되었습니까?

해결책

문제가 해결되었습니다.당신의 도움을 주셔서 대단히 감사합니다, 모두!:) 손상된 ODAC DLL의 조합이 된 다음 일부는 밝혀졌습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top