我在尝试从C#运行SQL Server 2005数据库中的存储过程时,遇到了这个错误(分布式事务已完成。将此会话注册到新事务或NULL事务中)。我没有主动/有意使用任何事务等,这就是这个错误奇怪的原因。我可以从管理工具中运行存储过程并且它可以正常工作。其他存储过程也可以从C#中运行,只有这一个存在问题。错误会立即返回,因此不可能是超时问题。代码大致如下:
SqlCommand cmd = null;
try
{
// Make sure we are connected to the database
if (_DBManager.CheckConnection())
{
cmd = new SqlCommand();
lock (_DBManager.SqlConnection)
{
cmd.CommandText = "storedproc";
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Connection = _DBManager.SqlConnection;
cmd.Parameters.AddWithValue("@param", value);
int affRows = cmd.ExecuteNonQuery();
...
}
}
else
{
...
}
}
catch (Exception ex)
{
...
}
这真让我感到困惑。谢谢您的任何帮助。