ODAC&C# - TNS:接続タイムアウトが発生しました - VS2005デバッガを介してのみ接続する

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

質問

私はOracleに慣れていて、私が直面している問題があります。 IDE - Visual Studio 2005からアプリケーションを実行すると、データベース接続がスムーズに確立されますが、インストールされているバージョンのアプリを実行すると、DB接続は失敗し、TNSを取得します。接続タイムアウトが発生しました。

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からmatathreadに変更しました。これ以上ContextSwitchDeadLock - そしてそれでも接続の問題は解決します。

私はあなたが問題にいくつかの光を流させることができることを願っていました - 私は髪を引くのに近いです。任意の洞察が高くなるでしょう。

役に立ちましたか?

解決

発行は解決されました。あなたの助けてくれてありがとう、みんな!:)破損したODAC DLLの組み合わせとそれからいくつかの組み合わせであることがわかりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top