Используя проект приложения уровня данных VS2010 SP1, я создал простейшую базу данных:
CREATE TABLE [dbo].[Table1]
(
column_1 int NOT NULL,
column_2 int NULL
)
Затем я успешно собрал .dacpac и проверил его, развернув его с помощью SSMS 2008 R2 на локальном экземпляре SQL Express (все работало нормально).
Затем я попытался использовать SSMS 2008 R2 для развертывания .dacpac на сервере SQL Azure. Мастеру удалось выполнить каждый шаг (включая создание базы данных и создание схемы), но на последнем шаге - «Регистрация DAC в метаданных DAC» - не удалось - с исключением IndexOutOfRangeException (см. Ниже).
Я пытался сделать это на существующем сервере SQL Azure, на новом сервере SQL Azure (оба с ошибкой с одним и тем же исключением) и на сервере SQL Azure с пустой базой данных с тем же именем (на этот раз не получилось с Исключение во время выполнения SSMS).
У меня сейчас нет идей. Будем весьма благодарны за любые идеи по развертыванию .dacpacs в SQL Azure.
System.IndexOutOfRangeException: индекс находился за пределами
массив. в
Microsoft.SqlServer.Management.Smo.SqlPropertyMetadataProvider.PropertyNameToIDLookupWithException (String
propertyName, PropertyAccessPurpose pap) в
Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetDbComparer (Boolean
inServer) в
Microsoft.SqlServer.Management.Smo.SqlSmoObject.InitializeStringComparer ()
в
Microsoft.SqlServer.Management.Smo.AbstractCollectionBase.get_StringComparer ()
в
Microsoft.SqlServer.Management.Smo.SimpleObjectCollectionBase.InitInnerCollection ()
в
Microsoft.SqlServer.Management.Smo.SmoCollectionBase.get_InternalStorage ()
в
Microsoft.SqlServer.Management.Smo.SmoCollectionBase.GetObjectByKey (ObjectKeyBase
ключ) в
Microsoft.SqlServer.Management.Smo.DatabaseCollection.get_Item (String
имя) в Microsoft.SqlServer.Management.Dac.RegisterDacStep.Execute ()
в
Microsoft.SqlServer.Management.Dac.TransactionalActionManager.ManagedActionStep.TransactionalStep.DoExecute ()
в
Microsoft.SqlServer.Management.Dac.TransactionalActionManager.ManagedActionStep.Execute ()
в
Microsoft.SqlServer.Management.Dac.TransactionalActionManager.ExecuteActionSteps (IEnumerable`1
managedActionSteps) в
Microsoft.SqlServer.Management.Dac.TransactionalActionManager.Go () в
Microsoft.SqlServer.Management.Dac.DacStore.Install (DacType dacType,
DatabaseDeploymentProperties внедрениеProperties, логическое значение
skipPolicyValidation, логическое значение skipDacRegistration)