我的项目的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>
我感觉我的连接字符串错了,但我真的不知道。
答案 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解决了这个问题。