将 System.Web.Providers 与 Sql Compact 结合使用

发布于 2024-11-19 14:46:02 字数 2491 浏览 4 评论 0原文

按照 文章 shanselman 我正在尝试使用“System.Web.Providers”,以便您可以通过 Sql Server Compact 使用成员身份、规则和配置文件。

我通过 Nuget 安装,创建了一个 Users.sdf 数据库并复制到 App_Data 文件夹。 我的 Web.config 如下:

<profile defaultProvider="DefaultProfileProvider">
  <providers>
    <clear />
    <add
      name="DefaultProfileProvider"
      type="System.Web.Providers.DefaultProfileProvider"
      connectionStringName="DefaultConnection"
      applicationName="/" />
  </providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add connectionStringName="DefaultConnection" enablePasswordRetrieval="false"
      enablePasswordReset="true" requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
      applicationName="/" name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" />
  </providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider">
  <providers>
    <clear />
    <add connectionStringName="DefaultConnection" applicationName="/"
      name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" />
  </providers>
</roleManager>
<sessionState mode="Custom" customProvider="DefaultSessionProvider">
  <providers>
    <add
      name="DefaultSessionProvider"
      type="System.Web.Providers.DefaultSessionStateProvider"
      connectionStringName="DefaultConnection"
      applicationName="/" />
  </providers>
</sessionState>

<connectionStrings>
  <add name="Sql_CE" connectionString="Data Source=|DataDirectory|\Users.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

我无法使用“aspnet_regsql”,因为它生成基于 SQL Server 的表

尝试访问页面安全性上的“网站管理工具”时出现以下错误

您选择的内容有问题 数据存储。这可能是由以下原因引起的 无效的服务器名称或凭据,或者 由于权限不足。它可以 也可能是角色管理员造成的 功能未启用。单击 下面的按钮将被重定向到 您可以在其中选择新数据的页面 店铺。

以下消息可能会有所帮助 诊断问题: 预应用启动初始化 方法 从类型开始 WebMatrix.WebData.PreApplicationStartCode 抛出异常如下 错误信息:该方法不能 在应用程序期间调用 预启动初始化阶段。

Following the article shanselman i'm trying to use "System.Web.Providers" so you can use memberships, rules and profiles with Sql Server Compact.

I installed via Nuget, created a Users.sdf database and copied to the App_Data folder.
My Web.config was as follows:

<profile defaultProvider="DefaultProfileProvider">
  <providers>
    <clear />
    <add
      name="DefaultProfileProvider"
      type="System.Web.Providers.DefaultProfileProvider"
      connectionStringName="DefaultConnection"
      applicationName="/" />
  </providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add connectionStringName="DefaultConnection" enablePasswordRetrieval="false"
      enablePasswordReset="true" requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
      applicationName="/" name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" />
  </providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider">
  <providers>
    <clear />
    <add connectionStringName="DefaultConnection" applicationName="/"
      name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" />
  </providers>
</roleManager>
<sessionState mode="Custom" customProvider="DefaultSessionProvider">
  <providers>
    <add
      name="DefaultSessionProvider"
      type="System.Web.Providers.DefaultSessionStateProvider"
      connectionStringName="DefaultConnection"
      applicationName="/" />
  </providers>
</sessionState>

<connectionStrings>
  <add name="Sql_CE" connectionString="Data Source=|DataDirectory|\Users.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

I can not use "aspnet_regsql" because it generates the tables to a SQL Server based

The following error occurs when trying to access the "Web Site Administration Tool" on page security

There is a problem with your selected
data store. This can be caused by an
invalid server name or credentials, or
by insufficient permission. It can
also be caused by the role manager
feature not being enabled. Click the
button below to be redirected to a
page where you can choose a new data
store.

The following message may help in
diagnosing the problem: The
pre-application start initialization
method Start on type
WebMatrix.WebData.PreApplicationStartCode
threw an exception with the following
error message: This method cannot be
called during the application's
pre-start initialization stage.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

破晓 2024-11-26 14:46:02

首先将连接字符串重命名为 DefaultConnection 并删除 Users.sdf 前面的 \ ,如下

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|Users.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

所示

创建了 Users.sdf 数据库

? Providers 框架和 SqlCe 应该为您做这件事。尝试从 App_Data 文件夹中删除 Users.sdf,然后再次尝试访问“网站管理工具”。提供者引擎应该为您重新创建它。

First rename your connection string to DefaultConnection and remove the \ in front of Users.sdf like so:

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|Users.sdf;"
       providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

You say that you

created a Users.sdf database

how? The Providers framework and SqlCe should do this for you. Try deleting the Users.sdf from the App_Data folder and try accessing the "Web Site Administration Tool" again. The provider engine should recreate it for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文