gpt4 book ai didi

c# - ODAC 和 C#-TNS : Connect timeout occurred - Connecting only through VS2005 debugger

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:56 24 4
gpt4 key购买 nike

我是 Oracle 的新手,我遇到了一个问题。当我从 IDE - Visual Studio 2005 运行应用程序时,数据库连接顺利建立,但是当我运行应用程序的安装版本时,数据库连接失败并且出现 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 错误,因此我按照说明将 Main() 上的属性从 STAThread 更改为 MTAThread。不再有 ContextSwitchDeadlock - 而且连接问题仍然存在。

我希望你能阐明这个问题 - 我快要拔掉头发了。任何见解将不胜感激。

最佳答案

问题已解决。非常感谢大家的帮助! :) 结果是损坏的 ODAC dll 的组合,然后是一些。

关于c# - ODAC 和 C#-TNS : Connect timeout occurred - Connecting only through VS2005 debugger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3298104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com