C# &引用;由于对象的当前状态,操作无效;论甲骨文阅读器

C# &引用;由于对象的当前状态,操作无效;论甲骨文阅读器,c#,oracle11g,performance-testing,datareader,C#,Oracle11g,Performance Testing,Datareader,关键是: 我有一个脚本,在我运行它通过性能测试之前,它绝对不会给我带来任何问题,现在每当我尝试运行它时,它总是在调试期间向我显示相同的错误: using (OracleConnection con = new OracleConnection()) { //Connect to OracleDB and retreive the first valid, unused SRVID// con.ConnectionString = @"Data S

关键是:

我有一个脚本,在我运行它通过性能测试之前,它绝对不会给我带来任何问题,现在每当我尝试运行它时,它总是在调试期间向我显示相同的错误:

using (OracleConnection con = new OracleConnection())
{
             //Connect to OracleDB and retreive the first valid, unused SRVID//
            con.ConnectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhostip)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyServerNAme)));User Id=MyUSer;Password=MyPAssword";
            OracleCommand command = new OracleCommand("SELECT MASK_GUID(SWAP_GUID(SRVID)) FROM  MYTable WHERE USED=0 AND ROWNUM = 1", con);
            con.Open();
            OracleDataReader reader = command.ExecuteReader();
            reader.Read();
            ServerID = reader.GetString(0);
            reader.Close();
             //update SRVID in DB as used so further users will not select it
            command.CommandText = "UPDATE MyTable SET USED=1 WHERE SRVID = FIX_GUID('"+ ServerID+"')";
            command.Connection = con;
             command.ExecuteNonQuery();
             reader.Close();
             reader.Dispose();
       con.Close();
       con.Dispose();
}
这就是代码,这里是出错的地方:

  • ServerID=reader.GetString(0)
    上,由于对象错误的当前状态,我收到的操作无效。当在调试中对读取器进行修饰时,我发现它没有数据行,这可能解释了错误(但这会导致…)

  • 这个问题很好。我在数据库本地运行它,它返回一个有效值(我复制粘贴它以确保),所以这不是reader没有数据的原因

  • 这个问题是在性能测试期间开始的,在这个错误开始不断出现之前,这个脚本运行了大约800次。。。我测试的系统仍然运行良好,即使在执行需要访问同一数据库的操作时也是如此

  • 调试器未显示与此案例相关的其他错误。。。或者说,就这一点而言


    想法?

    您需要将MaxHttpCollection属性设置为更高的值