【问题标题】:Error creating Membership with roles with aspnet.regsql.exe使用 aspnet.regsql.exe 创建具有角色的成员时出错
【发布时间】:2012-03-04 02:33:03
【问题描述】:

我有一个 asp.net 应用程序,我使用的是 vs 2010,我使用 Windows 身份验证连接到 sql server express 2008 r2。我可以连接到我的数据库并通过我的应用程序处理我的数据。

我正在尝试在我的网站上使用角色来实现会员身份

当我运行 aspnet.regsql.exe 实用程序时,我收到以下错误消息: 安装失败。

例外: 无法连接到 SQL Server 数据库。


失败详情

System.Web.HttpException (0x80004005):无法连接到 SQL Server 数据库。 ---> System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在 System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo,SqlInternalConnectionTds connHandler,布尔 ignoreSniOpenTimeout,Int64 timerExpire,布尔加密,布尔 trustServerCert,布尔集成安全) 在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo,字符串 newPassword,布尔型 ignoreSniOpenTimeout,TimeoutTimer 超时,SqlConnection owningObject) 在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo,字符串 newPassword,布尔重定向用户实例,SqlConnection owningObject,SqlConnectionString connectionOptions,TimeoutTimer 超时) 在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject,TimeoutTimer 超时,SqlConnectionString connectionOptions,字符串 newPassword,布尔重定向用户实例) 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 标识,SqlConnectionString 连接选项,对象 providerInfo,字符串 newPassword,SqlConnection owningObject,布尔重定向用户实例) 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项,对象 poolGroupProviderInfo,DbConnectionPool 池,DbConnection owningConnection) 在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection,DbConnectionPool 池,DbConnectionOptions 选项) 在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) 在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory) 在 System.Data.SqlClient.SqlConnection.Open() 在 System.Web.Management.SqlServices.GetSqlConnection(字符串服务器,字符串用户,字符串密码,布尔值信任,字符串 connectionString) 在 System.Web.Management.SqlServices.GetSqlConnection(字符串服务器,字符串用户,字符串密码,布尔值信任,字符串 connectionString) 在 System.Web.Management.SqlServices.SetupApplicationServices(字符串服务器,字符串用户,字符串密码,布尔信任,字符串连接字符串,字符串数据库,字符串 dbFileName,SqlFeatures 功能,布尔安装) 在 System.Web.Management.ConfirmPanel.Execute()

另外,我无法使用 ASP.NET 网站管理工具。当我单击安全选项卡时,我收到以下错误:

您选择的数据存储存在问题。这可能是由无效的服务器名称或凭据或权限不足引起的。这也可能是由于未启用角色管理器功能造成的。单击下面的按钮可重定向到您可以选择新数据存储的页面。

以下消息可能有助于诊断问题:找不到存储过程“dbo.aspnet_CheckSchemaVersion”。

所以,我按照说明单击“选择数据存储”按钮,这允许我选择一个提供程序。该提供程序名为“AspNetSqlProvider”,旁边有一个测试链接。我单击测试并收到以下消息: 已成功建立与数据库的连接。

成功建立到数据库的连接。这可行,但问题仍然存在,并且当我重复我已经讨论过的步骤时会出现以前的错误。

有谁知道这是什么原因造成的,以及如何解决这个问题?

【问题讨论】:

    标签: asp.net visual-studio-2010 sql-server-2008


    【解决方案1】:

    如果您无法连接到 SQL Server,则说明您的连接字符串有错误,或者您没有为混合模式身份验证启用 SQL Server。

    【讨论】:

    • 数据库设置为混合模式。它在寻找什么联系?我已经设置了 ApplicationServices 连接。我的应用程序可以连接并更新数据库。是否需要将特定连接添加到我的 web.config 中?
    • 我确实找到了问题所在。这归结为一个许可问题。 mdf 具有管理员用户的权限,但我以其他用户身份登录。我更改了权限以允许访问现有的 aspnet.mdf,并将 web.config 更改为指向数据库。配置能够获取数据库,我现在可以访问数据库。不完全是一个巧妙的解决方案
    猜你喜欢
    • 2014-03-25
    • 2020-12-05
    • 2022-01-18
    • 2019-09-13
    • 1970-01-01
    • 2013-08-23
    • 2021-07-08
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多