将aspnetdb.mdf从ASP更改为SQL Server

时间:2014-08-22 16:23:41

标签: c# sql asp.net sql-server

我在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共享上。”}

1 个答案:

答案 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字符串。