【发布时间】:2010-06-28 12:44:40
【问题描述】:
应用程序工作正常,并且每次都从任何机器连接除了它应该被部署的服务器:/当它在服务器上运行时,它设法在 20 次或其他尝试中连接一次。从时髦的症状来看,我怀疑这是某种与网络配置相关的问题(比如一些随机丢失的数据包?),但我的网络管理员同事尝试了 许多 不同的设置,但我们无法找到原因/解决方案。
每一条建议都将不胜感激,因为它真的让我发疯了。我想知道切换到 ODP.NET 是否可以解决问题,或者至少可以更轻松地进行故障排除(我读过 MS 的提供程序不是很稳定)。但是,由于架构不是很灵活,因此切换需要相当长的时间。但如果这是唯一合理的做法......
我正在使用的一段代码:
DbConnection conn = new OracleConnection();
conn.ConnectionString = _connectionString;
try
{
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText = "select sysdate from dual";
cmd.Connection = conn;
_logger.Info("Sysdate: " + cmd.ExecuteScalar().ToString());
}
catch (OracleException oex)
{
_logger.ErrorException("Oracle exception: " + oex.Message, oex);
}
catch (Exception ex)
{
_logger.ErrorException("Exception: " + ex.Message, ex);
}
finally
{
if (conn != null) conn.Close();
}
更多信息:
- 提供者:System.Data.OracleClient
- 库:instantclient-basiclite-win32-10.2.0.3-20061115
- 连接字符串的格式为:
Data Source=ip_address:port_number/instance;Persist Security Info=True;User ID=user;Password=passwd - 其他可以正常连接的应用程序:QueryExpress 使用相同的库,Sql Developer
- 操作系统:Windows Server 2008 Standard SP 2
【问题讨论】:
-
提示:除了 DBConnection 之外,您还应该处理 DBCommand 对象。最好将它们都包装在 using() {} 子句中。 stackoverflow.com/questions/2465301/…
标签: c# .net oracle ado.net oracleclient