尝试为文件<file>附加自动命名的数据库失败。存在具有相同名称的数据库</file>

时间:2011-02-15 02:43:58

标签: c# asp.net asp.net-mvc

我的项目的App_Data文件夹中有ASPNETDB.MDF数据库。

我在尝试添加用户时遇到错误:

MembershipUser user = Membership.CreateUser(viewModel.Username, viewModel.Password, viewModel.Contact.Email,
                                            viewModel.SecurityQuestion, viewModel.SecurityAnswer, true, out createStatus);

错误是:

尝试为文件C:\ Users \ Steven \ documents \ visual studio 2010 \ Projects \ MyApp \ MyApp.WebUI \ App_Data \ ASPNETDB.MDF附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。

我的web.config有这个连接字符串和成员资格信息:

<connectionStrings>
    <add name="ASPNETDB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

<membership>
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ASPNETDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>
<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ASPNETDB" applicationName="/" />
  </providers>
</profile>
<roleManager enabled="true">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ASPNETDB" applicationName="/" />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  </providers>
</roleManager>

我感觉我的连接字符串错了,但我真的不知道。

4 个答案:

答案 0 :(得分:1)

对于初学者,请试试这个连接字符串吗?

<connectionStrings>
    <add name="ASPNETDB" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>

我也很想知道您是否能够从您的应用程序访问数据库。根据你的错误,我会假设没有。

答案 1 :(得分:1)

  • 在目录权限下,创建新用户“网络服务”并配置权限

  • 替换|数据目录|到“C:\ inetpub \ wwroot ......”

成功。

答案 2 :(得分:1)

以管理员身份运行VisualStudio可在开发过程中解决此问题。

答案 3 :(得分:0)

将IIS管理器中的站点的应用程序池更新为ASP.NET v4.0解决了这个问题。