【发布时间】:2014-11-09 07:31:18
【问题描述】:
我正在使用 Brock Allen 的出色 MembershipReboot 库在我的 .NET 应用程序中提供身份服务。根据Getting Started with MembershipReboot,MembershipReboot 使用实体框架 (EF) 进行数据访问。
示例应用程序包含一个 SQL Server 数据库 MembershipReboot.mdf。我从这个数据库中导出了架构和数据,并将其导入到我的应用程序的数据库中(MyTestApp.mdf - 见下文)。
您可以看到 MembershipReboot.mdf 的来源,因为 MembershipReboot 附带的示例定义了以下连接字符串::
<add name="MembershipReboot" connectionString="Data Source=(LocalDb)\bla;Initial Catalog=MembershipReboot;Integrated Security=True" providerName="System.Data.SqlClient"/>
我为我的应用程序的数据库设置了以下连接字符串:
<add name="DefaultConnectionString" connectionString="Server=(LocalDb)\bla;AttachDbFilename=|DataDirectory|\MyTestApp.mdf;Initial Catalog=MyTestApp;Integrated Security=True" providerName="System.Data.SqlClient" />
直到最近,一切都很好。然后,在我的应用程序启动后,我开始间歇性地收到以下错误:第一次访问数据库时:
无法附加文件 'C:\Users\mkrieger\Google Drive\Projects\MyTestApp\MyTestApp\App_Data\MembershipReboot.mdf' 作为数据库 '会员重启'。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:无法附加文件 'C:\Users\mkrieger\Google Drive\Projects\MyTestApp\MyTestApp\App_Data\MembershipReboot.mdf' 作为数据库 '会员重启'。
我对我的应用程序目录进行了全文搜索,然后对“MembershipReboot.mdf”的可执行文件和所有二进制文件进行了Strings 搜索,但结果为空。
我错过了什么?
【问题讨论】:
-
您的配置文件中的连接字符串顶部是否有
<clear/>? -
@Basic - 我没有,但我只是添加并正在尝试。但是如果
删除了对继承的连接字符串的引用,我不应该在我的文本搜索过程中找到罪魁祸首连接字符串吗? -
这取决于... 有多种方法可以指定字符串并且不熟悉相关库,这是最容易测试的方法。可能无法找到它的可能原因包括存储在外部文件/注册表中、动态构建的文件名 (
String.Format("{0}.{1}", "MembershipReboot", extension)) 等等……再说一遍,并不是说它们很可能,只是排除了可能性 -
@Basic - 一件明确的事情是我曾经有一个指向 MembershipReboot.mdf 的“MembershipReboot”连接字符串条目。所以也许它被缓存在某个地方。
-
@Basic - 不走运。仅供参考,我在这里使用 LocalDb。当我禁用 LocalDb(例如通过重命名 .exe)时,应用程序失败,表明它无法连接到 LocalDb 实例。
标签: .net database entity-framework data-access membershipreboot