C#Windows应用程序连接到系统的设备无法运行

本文关键字:运行 应用程序 连接 系统 C#Windows | 更新日期: 2023-09-27 17:57:58

我看到以下异常来自Windows7机器上的windows窗体应用程序。这只是在这台机器上开始发生的。它在其他机器上仍然可以正常工作,但在特定的机器上却不行。

异常:

  Exception Type: System.ApplicationException
  Message: A device attached to the system is not functioning.  (Exception from HRESULT: 0x8007001F)
  Data: System.Collections.ListDictionaryInternal
  TargetSite: Void AddTimerNative(System.Object, UInt32, UInt32, System.Threading.StackCrawlMark ByRef)
  Source: mscorlib

StackTrace信息:

  at System.Threading.TimerBase.AddTimerNative(Object state, UInt32 dueTime, UInt32 period, StackCrawlMark& stackMark)
  at System.Threading.TimerBase.AddTimer(TimerCallback callback, Object state, UInt32 dueTime, UInt32 period StackCrawlMark & stackMark)
  at System.Threading.Timer.TimerSetup(TimerCallback callback, Object state, UInt32 dueTime, UInt32 period, StackCrawlMark & stackMark)
  at System.Threading.Timer..ctor(TimerCallback callBack, Object state, Int32 dueTime, Int32 period)
  at System.Data.ProviderBase.DbConnectionPool.CreateCleanupTimer()
  at System.Data.ProviderBase.DbConnectionPool.Startup()
  at System.Data.ProviderBase.DbConnectionPoolGroup.GetConnectionPool(DbConnectionFactory connectionFactory)
  at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPool(DbConnection owningObject, DbConnectionPoolGroup connectionPoolGroup)
  at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
  at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
  at System.Data.SqlClient.SqlConnection.Open()
  at System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
  at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
  at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
  at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)

同样,这似乎发生在应用程序中运行的第一个查询上。我可以通过机器上的ODBC连接连接到数据库服务器,这样我就知道机器可以看到数据库服务器。有什么建议吗?

C#Windows应用程序连接到系统的设备无法运行

原来这个错误与我们公司编写的程序使用的dll有关。这似乎只发生在windows 7中。

问题是我们使用了一个名为CryptBase.dll的dll,但Windows 7也附带了它自己的CryptBase.dll。我公司的版本一定与Windows版本有冲突,因为我们一删除这个dll的版本,程序就开始工作了。