我在aspnetdb.mdf
文件夹中使用默认的ASP.NET成员资格提供程序和App_Data
。然后我决定从aspnetdb.mdf
文件夹中删除App_Data
,并通过aspnet_regsql.exe
在SQL Server中创建一个新的aspnetdb.mdf
并相应地修改连接字符串。
现在,在检查用户的角色时,我收到异常错误,指示它仍然在旧路径(而不是SQL Server)中查找void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
if (!Roles.RoleExists("Administrator"))
{
Roles.CreateRole("Administrator");
}
if (Membership.GetUser("Admin") == null)
{
Membership.CreateUser("Admin", "mrtcn.1907");
Roles.AddUserToRole("Admin", "Administrator");
}
}
。
这是我的代码:
<add name="ApplicationServices"
connectionString="data source=MRTCN-PC\SQLEXPRESS;User Id=medicalusr;Password=123456;AttachDBFilename=|DataDirectory|\aspnetdb.mdf"
providerName="System.Data.SqlClient" />
这是我得到的例外:
System.Web.dll中发生了'System.Data.SqlClient.SqlException'类型的异常,但未在用户代码中处理
其他信息:尝试为文件C:\ Users \ muratcan \ Documents \ Visual Studio 2013 \ Projects \ MedicalBootStrap \ MedicalBootStrap \ App_Data \ aspnetdb.mdf附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。
这是连接字符串;
aspnetdb.mdf
最有可能相应修改的另一个地方是它在正确的路径上寻找<add name="ApplicationServices"
connectionString="data source=MRTCN-PC\SQLEXPRESS;User Id=medicalusr;Password=123456;AttachDBFilename=aspnetdb.mdf"
providerName="System.Data.SqlClient" />
。
在Win的建议之后,我相应地更改了连接字符串
这是修改后的连接字符串;
{{1}}
这是新的例外;
{“尝试为文件aspnetdb.mdf附加自动命名的数据库失败。存在同名的数据库,或者无法打开指定的文件,或者它位于UNC共享上。”}
答案 0 :(得分:2)
AttachDBFilename=|DataDirectory|\aspnetdb.mdf
表示您的LocalDB。
如果您连接到 SQL Server 而不是LocalDB, ConnectionString 应该是这样的 -
<connectionStrings>
<add name="ApplicationServices"
connectionString="Data Source=MRTCN-PC\SQLEXPRESS;Initial Catalog=DATABASE_NAME;Persist Security Info=True;User ID=medicalusr;Password=123456"
providerName="System.Data.SqlClient"/>
</connectionStrings>
示例SqlConnection字符串。