【问题标题】:ASP.NET Membership provider SQL Server ExpressASP.NET 成员资格提供程序 SQL Server Express
【发布时间】:2011-10-22 21:18:39
【问题描述】:

通过 SQL Server Express 使用 ASP.NET Membership 有什么问题吗?

当我使用这段代码时:

Roles.AddUserToRole("shah", "Admdin")

我遇到了如下所示的错误。

配置:

操作系统:Windows 7 64 位。
SQL Server 版本:SQL Server Express Edition,版本:9.00.4035.00

connectionString="Data Source=.\sqlexpress;Initial Catalog=MShop;Integrated Security=True" 

此版本的 SQL 不支持用户实例登录标志 服务器。连接将被关闭。描述:一个未处理的 执行当前 Web 请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息和 它起源于代码。

SQLExpress 数据库文件自动创建错误:

连接字符串指定一个本地 Sql Server Express 实例 使用应用程序的 App_Data 目录中的数据库位置。 提供者试图自动创建应用程序 服务数据库,因为提供商确定该数据库 不存在。以下配置要求是必要的 成功检查应用程序服务是否存在 数据库并自动创建应用服务数据库:

If the application is running on either Windows 7 or Windows Server 2008R2, special configuration steps are necessary to enable

自动创建提供者数据库。附加信息是 可在:http://go.microsoft.com/fwlink/?LinkId=160102。如果 应用程序的 App_Data 目录尚不存在,web 服务器帐户必须具有对应用程序的读写权限 目录。这是必要的,因为 Web 服务器帐户将 如果尚未创建 App_Data 目录,则自动创建 存在。 如果应用程序的 App_Data 目录已经存在,则 Web 服务器帐户只需要对 应用程序的 App_Data 目录。这是必要的,因为网络 服务器帐户将尝试验证 Sql Server Express 数据库已存在于应用程序的 App_Data 目录中。 从 Web 服务器撤消对 App_Data 目录的读取访问权限 帐户将阻止提供者正确确定 Sql Server Express 数据库已经存在。这将导致错误 当提供者试图创建一个已经存在的副本时 现有数据库。需要写入权限,因为 Web 服务器 创建新数据库时使用帐户的凭据。 机器上必须安装 Sql Server Express。 Web 服务器帐户的进程标识必须具有本地用户配置文件。有关如何创建 机器和域帐户的本地用户配置文件。

【问题讨论】:

  • 您的 ASP.NET 角色子系统引用什么连接字符串?在我看来,它引用的连接字符串与您显示的不同......
  • @marc_s 是的,你是对的老师:)。

标签: asp.net asp.net-membership roleprovider


【解决方案1】:

是的,您可以通过 SQL Express 使用成员资格。我认为您没有在 web.config 中正确配置角色。该错误表明它正在尝试创建数据库,但如果您尝试向用户添加角色,则该数据库应该已经存在,

您必须先创建用户,然后将其添加到角色中,如果数据库不存在,则要么您没有先创建用户,要么您的角色配置为使用不存在的数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2011-03-19
    相关资源
    最近更新 更多