Asp.net mvc 不同开发计算机上的ASP.NET成员资格提供程序
“asp.net成员资格提供程序”是否可移植?我是否必须运行aspnet_regsql.exe才能为每台新机器设置它 我将成员资格提供程序数据库导入VisualStudioDatabaseEdition,并签入源代码管理,然后将其重新部署到另一台开发人员计算机。从新机器上,我得到了以下错误。我该如何解决这个问题?谢谢 'System.Web.Security.SqlMembershipProvider' 需要兼容的数据库架构 架构版本为“1”。但是, 当前数据库架构不可用 与此版本兼容。你可以 需要安装兼容的 带有aspnet_regsql.exe的架构 (在框架中提供) 安装目录),或升级 将提供程序添加到新版本 只要您在新的开发环境中拥有Framework2.0或更高版本,并且可以访问包含该模式的数据库,它就是“可移植的” aspnet_regsql.exe应用程序仅用于生成db架构。当指定提供者时,真正的交易发生在web.config中 只要在连接字符串或包含成员资格提供程序架构的DB中有.mdf文件引用,一切都会正常工作 连接字符串:Asp.net mvc 不同开发计算机上的ASP.NET成员资格提供程序,asp.net-mvc,asp.net-membership,Asp.net Mvc,Asp.net Membership,“asp.net成员资格提供程序”是否可移植?我是否必须运行aspnet_regsql.exe才能为每台新机器设置它 我将成员资格提供程序数据库导入VisualStudioDatabaseEdition,并签入源代码管理,然后将其重新部署到另一台开发人员计算机。从新机器上,我得到了以下错误。我该如何解决这个问题?谢谢 'System.Web.Security.SqlMembershipProvider' 需要兼容的数据库架构 架构版本为“1”。但是, 当前数据库架构不可用 与此版本兼容。你可以
<connectionStrings>
<add name="LocalSQL" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=YourCatalog;Persist Security Info=True;User=sa;Password=password" providerName="System.Data.SqlClient"/>
</connectionStrings>
会员资格提供者:
<membership defaultProvider="DefaultProvider" userIsOnlineTimeWindow="30">
<providers>
<clear/>
<add name="DefaultProvider" connectionStringName="LocalSQL" applicationName="DefaultApp" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Encrypted" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</membership>
每个数据库都需要SQL成员资格提供程序。提供者注册过程在数据库中创建某些表。如果没有这些表,您将得到上面的错误 由于这些表是在数据库中创建的,因此您可以拥有想要共享单个SQL数据库的任意多个不同的应用程序或开发机器 但是,如果您需要另一个提供程序实例,因为您有一个不同的应用程序或需要与另一个SQL数据库通信,那么您需要再次注册(创建表)。另一种可能是使用SQL复制将表从一个数据库复制到另一个数据库
您的应用程序可能需要修改web.config文件,以确保它与现有SQL数据库的连接字符串正确。我也遇到了这个问题。对我来说,我必须明确地给我的应用程序命名(在我的开发机器上是“/” web.config:
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" applicationName="jobs"... />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" applicationName="jobs" ... />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="jobs" ... />
<add applicationName="jobs" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
INSERT INTO [dbo].[aspnet_Applications]([ApplicationName], [LoweredApplicationName], [ApplicationId], [Description]) SELECT N'jobs', N'jobs', N'74b045ce-9c16-4e6a-b1ec-08504600a627', NULL