2010-04-20 46 views
1

我有一个使用Sql用户实例的桌面应用程序。这是我的连接字符串:“User Instance = True”出现“无法打开用户默认数据库”错误

"Data Source=.\SqlExpress; 
AttachDbFilename=C:\path\file.mdf; 
Integrated Security=True; 
User Instance=True; 
Connect Timeout=100;" 

我的应用程序创建该数据库,下载从Web服务数据到它的负荷,然后做了很多与它的行动。

当我尝试重新打开连接时出现问题。我得到一个SqlException

“无法打开用户默认数据库登录失败
登录失败,用户myDomain的\名为myUsername'。”

这个错误在这种情况下没有意义 - 我没有默认的数据库。我正在登录到为当前应用程序创建的实例,它与SqlExpress分开运行。

没有其他方式连接到此数据库。如果我启动SqlExpress服务并连接到默认实例,它将不可见。它仅适用于此应用程序。

磁盘上的文件被在应用程序下运行的SqlExpress实例服务锁定。如果我停止应用程序并重新启动它,则连接第一次工作,但重新打开时失败。如果我只是停止应用程序,我可以删除.mdf文件并重新开始,但是当我重新打开连接时它仍然崩溃。

当我的应用程序启动实例作为我运行时,我的当前用户应该有权访问实例中的每个数据库。

这不会发生在同一代码的其他用户,这表明这是一个SQL配置问题。

有没有人有任何想法是什么导致这种情况,以及如何解决它?

回答

相关问题