Используя проект приложения уровня данных 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 atMoSqlSmoObject. Microsoft.SqlServer.Management.Smo.AbstractCollectionBase.get_StringComparer () в Microsoft.SqlServer.Management.Smo.SimpleObjectCollectionBase.InitInnerCollection () в Microsoft.SqlServer.Management.Smo.SmoCollectionBase.get_InternalStorage (Microsoft.SmoCollectionBase.get_InternalStoq). SmoCollectionBase.GetObjectByKey (ключ ObjectKeyBase) в Microsoft.SqlServer.Management.Smo.DatabaseCollection.get_Item (имя строки) в Microsoft.SqlServer.Management.Dac.RegisterDacStep.Execute () в Microsoft.SqlServer.ManagementManagementMacction. TransactionalStep.DoExecute () в Microsoft.SqlServer.Management.Dac.TransactionalActio nManager.ManagedActionStep.Execute () в Microsoft.SqlServer.Management.Dac.TransactionalActionManager.ExecuteActionSteps (IEnumerable`1 managedActionSteps) в Microsoft.SqlServer.Management.Dac.TransactionalActionManager.Maclage Установить (DacType dacType, DatabaseDeploymentProperties deploymentProperties, Boolean skipPolicyValidation, Boolean skipDacRegistration)