Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OleDB连接仅在调试时工作_C#_Oledb_Sql Server Express_Oledbconnection_Oledbexception - Fatal编程技术网

C# OleDB连接仅在调试时工作

C# OleDB连接仅在调试时工作,c#,oledb,sql-server-express,oledbconnection,oledbexception,C#,Oledb,Sql Server Express,Oledbconnection,Oledbexception,我有一个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=passw

我有一个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资源管理器运行应用程序(相同的调试编译),则30秒后,在Open()行中会出现“OleDBException:Login timeout expired”。 奇怪的是,即使我将调试器附加到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上重新配置了一些东西,重新启动了机器,等等。在某个时候,它又开始正常工作了。 连接时,我仍然无法在31秒内发现OleDb在做什么,这让我很恼火,但问题现在已经解决了(到目前为止)


谢谢你的帮助。

你是说当你不调试时,应用程序是从IIS运行的吗?不,它是一个WinForms应用程序。换句话说:如果我在VS中按F5,它会工作。如果我在Windows资源管理器中双击exe,它将失败。如果我将VS设置为启动exe并附加调试器,它也会失败。我最好的猜测是,您的并发连接正在耗尽。我想快车只允许5辆。如果您打开了IDE以及一个或两个其他工具(如ManagementStudio),那么您可能会达到5。如果您打开了连接池之类的功能,那么可能是因为所有5个连接都在某个地方被绑定了?@Cobusve:例外情况是,登录超时;它与并发连接有什么关系?@Francesc:你检查过数据库日志了吗?