我在 SQLExpress 2008 中有一个通过 EF4 连接访问的数据库。它还包含网站的 ASP.Net 角色提供程序表。在 web.config 中有两个单独的连接字符串指向同一个数据库。在调试数据库时,我收到以下错误:
无法打开物理文件“D:\TFS\Main\Source\TestWeb\TestWeb\App_Data\TestDB.mdf”。操作系统错误 32:“32(无法检索此错误的文本。原因:15105)”。尝试为文件 D:\TFS\Main\Source\TestWeb\TestWeb\App_Data\TestDB.mdf 附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。
我假设这意味着两个不同的连接字符串不能同时附加到 SQLExpress 数据库?
以下是连接字符串:
<add name="SqlRoleManagerConnection"
connectionString="data source=.\SQLEXPRESS;
Integrated Security=true;AttachDBFilename=|DataDirectory|TestDB.mdf;
User Instance=false;MultipleActiveResultSets=True"/>
<add name="TestDBEntities"
connectionString="metadata=res://*/TestDB.csdl|res://*/TestDB.ssdl|res://*/TestDB.msl;
provider=System.Data.SqlClient;
provider connection string="Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\TestDB.mdf;
Integrated Security=True;User Instance=false;
MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
这里故意在每个连接字符串上缺少开放尖括号,这是由于 SO 的限制。
有什么想法可以解决这个问题吗?