Wcf with firebird,事务关键
Wcf with firebird, Transactions Critical
我的应用程序中有以下代码:
using (var dBconn = new FbConnection(str_conexion_Pymesoft))
using (FbCommand fb = new FbCommand(sql, dBconn))
try
{
dBconn.Open();
List<DBParteTrabajoProyecto> miDBParteTrabajoReparacion = new List<DBParteTrabajoProyecto>();
var reader = fb.ExecuteReader();
while (reader.Read())
{
doStuff...
}
}
catch(Exception ex)
{
Log.WriteLine(""+ex);
}
finally
{
dBconn.Close();
dBconn.Dispose();
}
此代码大部分时间都可以正常工作。但是,如果我尝试非常快地调用该方法,则会出现此错误:
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131345628091236018): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Transactions.resources\v4.0_4.0.0.0_es_b77a5c561934e089\System.Transactions.resources.dll' cargado. El módulo se compiló sin símbolos.
System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledExcepción no controlada/LM/W3SVC/2/ROOT-1-131345628091236018 System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Referencia a objeto no establecida como instancia de un objeto
en FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 784
en FirebirdSql.Data.FirebirdClient.FbCommand.Release() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 824
en FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing) en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 376
en System.ComponentModel.Component.Finalize()System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
en FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 784
en FirebirdSql.Data.FirebirdClient.FbCommand.Release() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 824
en FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing)
en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 376
en System.ComponentModel.Component.Finalize()
这个错误是随机出现的。有时在第 2 次调用,有时在第 10 次调用
这是一个已知问题,已得到修复。更新到最新版本 FirebirdClient,你应该没问题。
我的应用程序中有以下代码:
using (var dBconn = new FbConnection(str_conexion_Pymesoft))
using (FbCommand fb = new FbCommand(sql, dBconn))
try
{
dBconn.Open();
List<DBParteTrabajoProyecto> miDBParteTrabajoReparacion = new List<DBParteTrabajoProyecto>();
var reader = fb.ExecuteReader();
while (reader.Read())
{
doStuff...
}
}
catch(Exception ex)
{
Log.WriteLine(""+ex);
}
finally
{
dBconn.Close();
dBconn.Dispose();
}
此代码大部分时间都可以正常工作。但是,如果我尝试非常快地调用该方法,则会出现此错误:
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131345628091236018): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Transactions.resources\v4.0_4.0.0.0_es_b77a5c561934e089\System.Transactions.resources.dll' cargado. El módulo se compiló sin símbolos. System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledExcepción no controlada/LM/W3SVC/2/ROOT-1-131345628091236018 System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Referencia a objeto no establecida como instancia de un objeto en FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 784 en FirebirdSql.Data.FirebirdClient.FbCommand.Release() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 824 en FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing) en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 376 en System.ComponentModel.Component.Finalize()System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto. en FirebirdSql.Data.FirebirdClient.FbCommand.RollbackImplicitTransaction() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 784 en FirebirdSql.Data.FirebirdClient.FbCommand.Release() en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 824 en FirebirdSql.Data.FirebirdClient.FbCommand.Dispose(Boolean disposing) en C:\Users\Jiri\Documents\devel\NETProvider\working\Provider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbCommand.cs:línea 376 en System.ComponentModel.Component.Finalize()
这个错误是随机出现的。有时在第 2 次调用,有时在第 10 次调用
这是一个已知问题,已得到修复。更新到最新版本 FirebirdClient,你应该没问题。