Назад | Перейти на главную страницу

Настройка поставщика членства ASP.NET для приложения

Я недавно загрузил DotWiki, который планирую использовать для раздела поддержки на веб-сайте моей компании. Само приложение имеет два разных режима безопасности «простой» и «полный». Full использует поставщика членства ASP.NET для обеспечения безопасности. Однако, когда я запускаю следующую команду (конечно, заменяя [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 all -d DotWiki

Start adding the following features:
Membership
Profile
RoleManager
Personalization
SqlWebEventProvider

.
An error occurred during the execution of the SQL file 'InstallMembership.sql'.
The SQL error number is 290 and the SqlException message is: Invalid EXECUTE sta
tement using object "Relation", method "SetUseVarDecimal".
SQL Server: [my computer name]\[sql server]
Database: [DotWiki]
SQL file loaded:
InstallMembership.sql

Commands failed:

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

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

SELECT @ver = 8
SELECT @version = @@Version
SELECT @hyphen  = CHARINDEX(N' - ', @version)
IF (NOT(@hyphen IS NULL) AND @hyphen > 0)
BEGIN
    SELECT @hyphen = @hyphen + 3
    SELECT @dot    = CHARINDEX(N'.', @version, @hyphen)
    IF (NOT(@dot IS NULL) AND @dot > @hyphen)
    BEGIN
        SELECT @version = SUBSTRING(@version, @hyphen, @dot - @hyphen)
        SELECT @ver     = CONVERT(int, @version)
    END
END

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

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

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

IF (EXISTS (SELECT name
              FROM sysobjects
             WHERE (name = N'aspnet_Membership_CreateUser')
               AND (type = 'P')))
DROP PROCEDURE dbo.aspnet_Membership_CreateUser

SQL Exception:
System.Data.SqlClient.SqlException: Invalid EXECUTE statement using object "Rela
tion", method "SetUseVarDecimal".
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea
n breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception
, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj
ect stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm
dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds
ParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,
Boolean async)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult res
ult, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at System.Web.Management.SqlServices.ExecuteFile(String file, String server,
String database, String dbFileName, SqlConnection connection, Boolean sessionSta
te, Boolean isInstall, SessionStateType sessionStatetype)

Любая помощь будет оценена :)

Во-первых, пожалуйста, установите последний пакет обновлений, как предлагается splattne, поскольку упомянутая вами версия @@ НЕ является sp2. Видеть http://www.krell-software.com/mssql-builds.asp

Во-вторых, вы также можете установить необходимые таблицы, sprocs и представления напрямую. Вы можете найти скрипты для запуска на SQL-сервере здесь:% WINDOWS% \ Microsoft.NET \ Framework \ v2.0.50727 \

См. Эту страницу для получения дополнительной информации: http://aspnet.4guysfromrolla.com/articles/040506-1.aspx

Ваша база данных работает в правильном режиме совместимости для SQL 2005? Это будет 90. Также убедитесь, что у вас есть разрешения ALTER для таблицы отношений.

Итак, строка, которая на самом деле получает ошибку, будет следующей:

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

Invalid EXECUTE statement using object "Relation", method "SetUseVarDecimal"

Я получаю много смешанных результатов, обновляясь до пакета обновления 2 (который у меня уже есть). Также некоторые люди говорят, что это проблема с разрешениями. Кажется, ничего не работает.

Какой пакет обновления у вас установлен на SQL Server 2005? Кажется, это было решено с помощью SP2 (последний - Service Pack 3).