【发布时间】:2013-01-02 11:07:26
【问题描述】:
我有一个执行大量数据处理的 Windows 服务。在某些时候,我的服务在关闭SQLConnection 时崩溃。当我评论关闭连接方法调用时,服务始终如一地工作而不会崩溃。
可能是什么问题?下面是一段代码sn-p
private void DeleteTempTable()
{
_logger.Info("DeleteTempTable");
try
{
foreach (KeyValuePair<string, string> item in _stables)
{
string dropSql = string.Empty;
dropSql = string.Format("DROP TABLE [{0}];", item.Value);
SqlConnection oConnDropTables = new SqlConnection(connectionString);
oConnDropTables.Open();
if (!string.IsNullOrEmpty(dropSql))
{
using (SqlCommand cmd = new SqlCommand(dropSql, oConnDropTables))
{
cmd.ExecuteNonQuery();
}
}
if (oConnDropTables != null && oConnDropTables.State == ConnectionState.Open)
oConnDropTables.Close();
oConnDropTables = null;
}
}
catch (Exception ex)
{
_logger.Error("Error " + ex.Message);
throw ex;
}
}
当我评论关闭连接时,服务正在运行而不会崩溃。它也没有被捕获块捕获。此外,连接不是Null,连接状态仅是打开的..
我尝试过的: 1)将“使用”构造用于连接 - 没有帮助 2) 捕获 SQLException 以检查我是否得到任何东西 - 没有帮助
【问题讨论】:
-
欢迎来到 StackOverflow。请将“崩溃”的完整堆栈跟踪添加到您的问题中。它可能包含有关“崩溃”原因的基本信息。
-
循环打开和关闭连接.....???
-
定义“崩溃”。有什么例外?你的
_logger报告了什么? -
@codingbiz 不理想,但它不应该导致崩溃 - 它只会与池对话
-
我的服务基本上宕机了......我现在正在尝试调试诊断来捕获转储......
标签: c# crash sqlconnection sqlconnection.close