質問

OLEDBCONNECTIONを使用して、ローカルマシンの名前付きSQL Expressインスタンスに接続する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 Explorer(同じDebugコンピレーション)からアプリケーションを実行すると、」OledBexception:ログインタイムアウトの有効期限が切れました「30秒後のオープン()行で。奇妙なことは、デバッガを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