OleDBConnectionを使用してローカルマシン上の名前付きSQLExpressインスタンスに接続するC#アプリケーションがあります。
_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:ログインタイムアウトが期限切れになりました」というメッセージが表示されます。奇妙なことに、デバッガーをexeに接続しても例外が発生します。接続文字列が正しく、すべてが正常に見えることがわかります。SQLExpressエラーログまたはSQLActivityMonitorのいずれにも追加情報を追加することはできません。
それが役立つ場合は、ここに例外があります:
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()
ここで提供する情報で問題を見つけるのは難しいかもしれませんが、他にどこを探すべきか、他にどのようなテストを行うべきかわからないので、それが何であるか、または見つけるためにどのようなテストを行うことができるかについてのアイデアはありません本当にありがたいです。