我正在设置会员提供商,因此,我收到以下错误消息:
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类连接到的另一个数据库,它位于不同的项目中(使用层层)。
非常感谢!
答案 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。