ASP.NET成员资格设置 - 数据库问题

时间:2010-02-14 19:20:01

标签: asp.net sql-server web-config membership

我正在设置会员提供商,因此,我收到以下错误消息:

An attempt to attach an auto-named database for file
     

C:\用户\ Mcoroklo \桌面\ Programmering \私人   Projekter \ ASP.NET \服务台\版本4 \帮助台\ ClientSite \ App_Data文件\ ASPNETDB.MDF   失败。具有相同名称的数据库   存在,或指定的文件不能   打开,或者它位于UNC分享。

我是新成员,所以我不能否认真正至关重要的事情! : - )

我很确定这与我的连接字符串和/或SQL成员资格提供程序有关。我在web.config中进行了以下设置:

我的连接字符串:

  <connectionStrings>
<add name="MembershipServer" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\ASPNETDB.mdf; Trusted_Connection=Yes;"/>

我的SQL提供商

 <membership defaultProvider="AspNetSqlProvider">
  <providers>
    <clear/>
    <add connectionStringName="MembershipServer" 
         name="AspNetSqlProvider"
         applicationName="/" 
         type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </providers>
</membership>

我的身份验证和授权:

 <authentication mode="Forms">

  <forms name=".ASPXFORMSAUTH" loginUrl="Site/Login.aspx"
      cookieless="UseCookies"  >
  </forms>
</authentication>

<authorization>
  <deny users="?"/>
</authorization>

我网站中的文件结构是我的目录中有两个本地数据库。成员资格一(ASPNETDB.MDF)是我指向我的连接字符串的那个。我已经使用ASP.NET工具来创建它。

我通过LINQ TO SQL类连接到的另一个数据库,它位于不同的项目中(使用层层)。

非常感谢!

3 个答案:

答案 0 :(得分:1)

Visual Studio将为您初始化所有这些内容。你正在进入它的方式。它还没有为您创建和配置该数据库。

删除连接字符串元素,成员资格元素,身份验证元素和授权元素。

或更好从新的Asp.Net应用程序开始

然后点击项目(或网站)&gt; Asp.net配置并按照步骤进行操作。

否则您将需要使用aspnet_reqsql.exe创建和配置您自己的数据库。

答案 1 :(得分:0)

尝试删除数据库名称前的\。

AttachDbFilename = | DataDirectory目录| ASPNETDB.MDF

而不是:

AttachDbFilename = | DataDirectory目录| \ ASPNETDB.MDF

哦,另一个想法,你确实在机器上装了SQL Express,对吗?

答案 2 :(得分:0)

请记住,machine.config定义一个名为“LocalSqlServer”的连接字符串,默认情况下,您的应用程序将使用该字符串。

要解决此问题,请显式删除名称,如下所示:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <!-- your new connection string here -->
</connectionStrings>

或使用clear,但我没有测试过:

<clear/>

通常我所做的只是覆盖LocalSqlServer,所以我的连接字符串命名相同,这似乎解决了大多数问题。

就像其他人提到的那样,当您使用ASP.NET Site Manager设置应用程序时,它应该为您添加ASPNETDB。