我有一个使用Sql用户实例化的桌面应用程序。这是我的连接字符串:
"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配置问题。
有没有人知道导致这种情况的原因以及如何解决这个问题?
答案 0 :(得分:0)
如果仍然存在问题,请查看我的答案中的要点 - 特别是关于用户实例的MSDN博客链接: