【问题标题】:An attempt to attach an auto-named database for file <FILE> failed. A database with the same name exists尝试为文件 <FILE> 附加自动命名的数据库失败。存在同名数据库
【发布时间】:2011-02-15 02:43:58
【问题描述】:

我的项目的 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>

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

【问题讨论】:

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


【解决方案1】:

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

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

我也很想知道您是否可以从您的应用程序中访问数据库。根据您的错误,我认为不会。

【讨论】:

    【解决方案2】:
    • 同时目录权限,新建用户“网络服务”并配置权限

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

    成功了。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 我怀疑他在使用 IIS 和他的项目路径。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        相关资源
        最近更新 更多