为应用程序设置ASP.NET成员资格提供程序

我最近下载了DotWiki,我打算使用我的公司网站的支持部分。 应用程序本身有两个不同的安全模式“简单”和“完整”。 完全使用ASP.NET成员资格提供程序的安全性。 但是,当我运行以下命令(当然用适当的信息replace[sql server]等),我得到一个很大的错误。

aspnet_regsql -S [my computer name]\[sql server] -E -A all -d DotWiki

我运行这个时出现以下错误。

 C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regsql -S AGQAOFFICE \ SQLSER
 VER05 -E -A所有 -  DotWiki

开始添加以下function:
籍
轮廓
 RoleManager
个性化
 SqlWebEventProvider

 。
执行SQL文件“InstallMembership.sql”期间发生错误。
 SQL错误号是290,SqlException消息是:无效EXECUTE sta
使用对象“关系”的方法,方法“SetUseVarDecimal”。
 SQL Server:[我的电脑名称] \ [sql server]
数据库:[DotWiki]
加载的SQL文件:
 InstallMembership.sql

命令失败:

 / ******************* ************ /
 / ******************* ************ /
 / ******************* ************ /

 DECLARE @ver int
 DECLARE @version nchar(100)
 DECLARE @dot int
 DECLARE @hyphen int
 DECLARE @SqlToExec nchar(400)

 SELECT @ver = 8
 SELECT @version = @@版本
 SELECT @hyphen = CHARINDEX(N' - ',@version)
 IF(NOT(@ hyphen IS NULL)和@hyphen> 0)
开始
     SELECT @hyphen = @hyphen + 3
     SELECT @dot = CHARINDEX(N'。',@version,@ hyphen)
     IF(NOT(@dot IS NULL)和@dot> @hyphen)
    开始
         SELECT @version = SUBSTRING(@version,@ hyphen,@dot  -  @hyphen)
         SELECT @ver = CONVERT(int,@version)
    结束
结束

 / ******************* ************ /

 IF(@ver> = 8)
     EXEC sp_tableoption N'aspnet_Membership','text in row',3000

 / ******************* ************ /
 / ******************* ************ /

 IF(EXISTS(SELECT name
              来自sysobjects
              WHERE(name = N'aspnet_Membership_CreateUser')
                AND(type ='P')))
 DROP程序dbo.aspnet_Membership_CreateUser

 SQL例外:
 System.Data.SqlClient.SqlException:无效的EXECUTE语句使用对象“Rela
和“方法”SetUseVarDecimal“。
   在System.Data.SqlClient.SqlConnection.OnError(SqlExceptionexception,Boolea
 n breakConnection)
   在System.Data.SqlClient.SqlInternalConnection.OnError(SqlExceptionexception
 ,布尔breakConnection)
   在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj
 ect stateObj)
   在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cm
 dHandler,SqlDataReader的dataStream,BulkCopySimpleResultSet bulkCopyHandler,Tds
 ParserStateObject stateObj)
   在System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,
布尔asynchronous)
   在System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult res
 ult,String methodName,Boolean sendToPipe)
   在System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   在System.Web.Management.SqlServices.ExecuteFile(string文件,string服务器,
string数据库,stringdbFileName,SqlConnection连接,布尔sessionSta
 te,布尔isInstall,SessionStateType sessionStatetype)

任何帮助,将不胜感激 :)

首先,请按照build议的splattne安装最新的servicepack,因为你提到的@@版本不是sp2。 请参阅http://www.krell-software.com/mssql-builds.asp

其次,您也可以直接安装所需的表格,sprocs和视图。 您可以在这里find脚本在SQL Server中运行:%WINDOWS%\ Microsoft.NET \ Framework \ v2.0.50727 \

有关详细信息,请参阅此页: http : //aspnet.4guysfromrolla.com/articles/040506-1.aspx

您在SQL Server 2005上安装了哪个Service Pack? 似乎已经解决了SP2(最后一个是Service Pack 3)。

所以实际得到错误的那一行是这样的:

EXEC sp_tableoption N'aspnet_Membership', 'text in row', 3000

无效的EXECUTE语句使用对象“关系”,方法“SetUseVarDecimal”

我得到了很多混合的结果,更新到Service Pack 2(我已经有了)。 也有人说这是权限问题。 似乎没有任何工作。

您的数据库是否以正确的SQL2005兼容模式运行? 这将是90.还要确保您在关系表上具有ALTER权限。