繁体   English   中英

ASP.Net成员身份错误CREATE DATABASE失败。 列出的某些文件名无法创建。 检查相关错误

[英]ASP.Net Membership Error CREATE DATABASE failed. Some file names listed could not be created. Check related errors

我正在尝试将AP.Net成员资格添加到我的数据库中。 过去我在此方面取得了成功,因此我对自己的工作有所了解。 我的项目是一个带有Framework 4.5.2的VB.Net网站。 我在框架4中使用asp_regsql.exe将架构添加到我的数据库中。 我创建了以下web.config条目(根据MSDN文章):

<connectionStrings>
<add name="AFKMSConnectionString" providerName="System.Data.SqlClient" connectionString="working as intended" />    

  <system.web>
<authentication mode="Forms" >
  <forms loginUrl="Account/Login.aspx"
    name=".ASPXFORMSAUTH" />
</authentication>
<!--<authorization>
  <deny users="?" />
</authorization>-->
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
<pages>
  <namespaces>
    <add namespace="System.Web.Optimization"/>
    <add namespace="Microsoft.AspNet.Identity"/>
  </namespaces>
  <controls>
    <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/>
  </controls>
</pages>
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">
  <providers>
    <clear/>
    <add
    name="SqlMembershipProvider"
    type="System.Web.Security.SqlMembershipProvider"
    connectionStringName="AFKMSConnectionString"
    applicationName="AFKMS"
    enablePasswordRetrieval="false"
    enablePasswordReset="true"
    requiresQuestionAndAnswer="false"
    requiresUniqueEmail="true"
    passwordFormat="Hashed" />
  </providers>
</membership>
<profile enabled ="true" defaultProvider="SqlProvider">
  <providers>
    <clear />
    <add name="SqlProvider"
      type="System.Web.Profile.SqlProfileProvider"
      connectionStringName="AFKMSConnectionString"
      applicationName="AFKMS"
      description="SqlProfileProvider for SampleApplication" />
  </providers>
</profile>
<roleManager enabled ="true"
           defaultProvider ="SqlRoleProvider" >
  <providers>
    <clear/>
    <add name ="SqlRoleProvider"
         type="System.Web.Security.SqlRoleProvider"
         connectionStringName="AFKMSConnectionString"
         applicationName="AFKMS"/>

  </providers>
</roleManager>

我的连接字符串适用于当前功能,但是当我尝试注册用户时,出现以下错误:

文件“ C:\\ Users \\ Dan \\ Source \\ Repos \\ AFKMS \\ AFKMS \\ App_Data \\ aspnet-AFKMS-140073d4-6858-4f19-9555-0edfbaadd43a.mdf”的目录查找失败,并出现操作系统错误2(系统无法查找指定的文件。)。 CREATE DATABASE失败。 列出的某些文件名无法创建。 检查相关错误。

这来自帐户/注册,

昏暗的结果= manager.Create(用户,Password.Text)

为什么要尝试创建数据库? 我想念什么?

<connectionStrings>
<add name="AFKMSConnectionString" connectionString="data source=.;Initial Catalog=your_db_name;integrated security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

您可以向我们提供有关如何创建用户的代码吗? 您提到:昏暗的结果= manager.Create(user,Password.Text)我认为您需要使用:

Membership.CreateUser(UserName, Password, Email) 

我假设您已经使用Web窗体模板创建了一个新的ASP.NET Web应用程序?

在这种情况下,您似乎正在尝试使用原始成员资格提供程序配置设置来配置较新的ASP.NET Identity系统。

艾哈迈德所说,您在注册页面中提到了对manager.Create(user, Password.Text)的调用-这是使用ASP.NET Identity中的ApplicationUserManager。

如果您查看项目的App_Start文件夹,则应该找到一个名为IdentityConfig.vb的文件(假设您使用的是VB.NET),该文件具有Create方法,该方法返回ApplicationUserManager依次调用ApplicationDbContext类,该类为在Models文件夹中创建的文件,该文件将定义为使用名为"DefaultConnection"的连接-默认情况下,此文件在项目名称下的App_Data文件夹中设置为独立的.mdf文件。

您应该更改它以指向您的连接字符串,但是要注意,它使用Entity Framework为您创建数据库架构-它应该只是将其添加到现有数据库中,但是您应该确保在开始之前已对其进行备份万一它掉落了一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM