文件的“创建文件打开”操作期间 FirebirdSql 数据客户端 I/O 错误

问题描述

我们的一位客户非常随机地收到此错误。每周一次或两次。它只发生在最近一个月左右。

Error message: 
I/O error during "CreateFile (open)" operation for file "ttt"
Error while trying to open file
Stack trace:
   at Firebirdsql.Data.FirebirdClient.FbConnectionInternal.Connect()
   at Firebirdsql.Data.FirebirdClient.FbConnectionPoolManager.Pool.CreateNewConnection(FbConnectionString connectionString,FbConnection owner)
   at Firebirdsql.Data.FirebirdClient.FbConnectionPoolManager.Pool.CreateNewConnectionIfPossibleImpl(FbConnectionString connectionString,FbConnection owner)
   at Firebirdsql.Data.FirebirdClient.FbConnectionPoolManager.Pool.GetConnection(FbConnection owner)
   at Firebirdsql.Data.FirebirdClient.FbConnectionPoolManager.Get(FbConnectionString connectionString,FbConnection owner)
   at Firebirdsql.Data.FirebirdClient.FbConnection.open()
   at TTT.DALFirebird.FbSocket.ExecuteScalar(CommandType commandType,String commandText,String connectionString,FbParameter[] parameters)
   at TTT.LibGlobal.Data.FirebirdHelper.TestConnection(String connectionString)
------
Error message: 
I/O error during "CreateFile (open)" operation for file "ttt"
Error while trying to open file
Stack trace:
   at Firebirdsql.Data.Client.Managed.Version10.GdsDatabase.ProcessResponse(IResponse response)
   at Firebirdsql.Data.Client.Managed.Version10.GdsDatabase.ReadResponse()
   at Firebirdsql.Data.Client.Managed.Version10.GdsDatabase.ReadGenericResponse()
   at Firebirdsql.Data.Client.Managed.Version10.GdsDatabase.Attach(DatabaseParameterBuffer dpb,String dataSource,Int32 port,String database)
   at Firebirdsql.Data.FirebirdClient.FbConnectionInternal.Connect()

数据库托管在装有 Windows 8.1 的专用 PC 上。

火鸟版本:3.0.7.33374 (x64)

Firebird sql 数据客户端版本:4.6.1.0

我检查了数据库文件的安全设置并完全控制了系统和用户。不知道还有什么可能,因为 3050 端口是开放的,并且用户在 99% 的时间连接都没有问题。是专门测试他们的 I.T.可以跑来诊断吗?

桌面应用程序的连接字符串是:

dialect=3;initial catalog=<Database Alias>;data source=<IP ADDRESS>;user id=<User>;password=<Password>;character set=ISO8859_1;pooling=True;connection lifetime=30;server type=Default;port number=3050

如果您需要更多信息,请告诉我。

解决方法

他们正在尝试连接到数据库“ttt”。未找到此数据库(或别名),因此他们收到错误消息。作为应用程序的开发人员,您应该知道调用堆栈中的“TTT”对象可能是什么以及连接字符串是如何形成的。