我有一个C#应用程序,该应用程序使用OLEDBConnection在本地计算机上连接到命名的SQL Express实例:

_connection = new OleDbConnection(_strConn);
_connection.Open();

_strConn is something like this: "Provider=sqloledb;Data Source=.\NAMEDINSTANCE;Initial Catalog=dbname;User Id=sa;Password=password;"

如果我调试应用程序,则连接正常。如果我从Windows Explorer(相同的调试汇编)运行该应用程序,我将获得“OLEDBEXCEPTION:登录超时到期“在30秒后的Open()行中。奇怪的是,即使我将调试器附加到EXE。在SQL Express错误日志或SQL活动监视器中。

如果有帮助,则是例外:

    System.Data.OleDb.OleDbException: Login timeout expired
   at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.OleDb.OleDbConnection.Open()

我想发现我在这里提供的信息的问题可能很困难,但是我不知道其他地方或其他测试要做什么,所以任何关于它可能是什么或我可以做什么测试的想法将不胜感激。

有帮助吗?

解决方案

我修好了它。不幸的是,我真的不知道如何:我删除了输出文件夹,重置一些项目参考,重新配置了SQL Express上的几件事,重新启动了机器等。在某个时候,它再次开始工作正常。连接时,我仍然无法发现OLEDB在31秒内正在做的事情,但是(到目前为止)已经消失了。

谢谢你的帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top