我用aspnet_regsql创建了一个数据库,数据库是在sever 2008中创建的,而不是在我的项目中的数据文件夹中创建的(我需要手动将它移动到文件夹中吗?)
接下来,在网站管理工具中,我转到provider部分并单击don按钮。
我有个错误:
无法建立到数据库的连接。如果尚未创建Server数据库,请退出网站管理工具,使用aspnet_regsql命令行实用程序创建和配置数据库,然后返回到该工具以设置提供程序。
也许我需要在web.config中设置一些东西,比如成员设置或连接字符串(或者ASP.NET网站管理员工具应该为我创建这些设置)?
更新:
也许发生这种情况是因为我使用的是server 2008完整而不是快递?
更新2:
在网站管理工具中将成员部分和连接字符串设置到我的aspnetdb数据库后,我打开了安全性->安全设置向导>定义角色(第4阶段),我得到了以下错误:
遇到了一个错误。请返回上一页,然后再试一次。
以下消息可能有助于诊断问题:无法连接到Server数据库。在System.Web.Administration.WebAdminPage.CallWebAdminHelperMethod(Boolean isMembership,字符串methodName,Object[]参数,( ASP.security_wizard_wizardpermission_ascx.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean,Boolean )
发布于 2010-03-11 10:03:38
是的,您需要修改web.config中的连接字符串。
在web.config中,您可能会在<membership>元素中看到类似的内容:
<membership>
<providers>
<clear />
<add connectionStringName="LocalSqlServer"
name="AspNetSqlMembershipProvider"
[...]
type="System.Web.Security.SqlMembershipProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>connectionStringName属性告诉框架在<connectionStrings>元素中查找一个名为"LocalSqlServer“的连接字符串--这可能不是在web.config中定义的,因为它可以从.Net框架核心配置目录中的Machine.Config继承。
您可能应该为连接字符串选择一个新的名称,并更新您的成员、角色和配置文件(如果您正在使用它们)提供程序来使用新名称。
然后,在<connectionStrings>元素中有以下内容:
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="MyConnectionString"
connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>调整值以适应您的系统--我建议集成安全性而不是在web.config中存储数据库登录名和密码,但是YMMV (例如,在我的共享主机上,我不能使用Integrated,所以必须提供用户/传递详细信息)。
网站管理工具也将遵守这些连接字符串。
编辑回复评论
您已经成功登录了吗?还是创建了一个用户?我只想排除您配置了连接字符串并正常工作的可能性?
您是否也配置并打开了角色提供程序?您更新了其中的"connectionStringName“属性吗?
注意,和前面一样,machine.config为您指定了一个默认角色提供程序,它试图指向本地SqlExpress实例--这可能是连接错误的来源。
<!-- Note enabled="true" - you need to turn this one on! -->
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="MyConnectionString"
[...]
type="System.Web.Security.SqlRoleProvider,
System.Web,
Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>要了解更多关于被省略的属性的详细信息,我推荐文档:
一旦您配置好它,它就应该都能工作了。
如果您无法创建用户/登录,我将检查:
data source与服务器实例匹配(不一定只是计算机的名称,可能类似于"MachineName\SqlServer")。aspnet_开始),以确保您可以创建用户(如果您有登记表,就需要创建用户),您应该将帐户添加到aspnet_XXXX_FullAccess角色中(每个角色用于成员身份、个性化、配置文件和角色)。发布于 2010-03-11 08:58:34
打开sql management并打开主数据库,进行新的查询并键入
sp_configure 'user instances enabled','1'执行此命令,然后键入
reconfigure 并执行此操作,以使更改生效。有关sp_configure的更多信息,如果希望列出所有配置,可以阅读http://msdn2.microsoft.com/en-us/library/ms188787.aspx,然后在没有任何参数的情况下执行sp_configure。
发布于 2014-04-14 11:55:00
按照以下步骤将会员身份正确地整合到您的网站(如果您看到上面的错误,如
"Could not establish a connection to the database. If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider.")
步骤1:
从计算机上的C:\windows\Microsoft.NET\Framework\v2.0.50727文件夹中运行aspnet_regsql.exe实用程序。选择或双击aspnet_regsql.exe实用程序将打开向导,如下所示。

选择上述窗口上的Next按钮将打开下一个窗口,您可以在该窗口中为应用程序服务配置Server或从现有数据库中删除应用程序服务信息。
步骤2:
选择“为应用程序服务配置Server”单选按钮以安装新数据库,然后选择“下一步”按钮。

步骤3
输入服务器名称,如下所示。请注意,可以将应用程序服务数据库名更改为所需的名称(默认情况下为aspnetdb)。(或)您可以选择Server身份验证(需要用户名、密码、相应的数据库名称)。
请注意,我将数据库命名为ASPNETServices

步骤4:
选择“下一步”按钮,确认您的设置是否正确,以进一步安装(如下图所示),并选择“下一步”按钮。

步骤5
在上面的窗口上选择Next按钮,在成功安装了用于ASP.NET.Finally的应用程序服务数据库之后,您将按下确认窗口,按Finish。

步骤6
您将看到已安装的ASPNET数据库可以在ASP.NET应用程序中使用。

https://stackoverflow.com/questions/2423515
复制相似问题