使用 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.SqlSmoObject.GetDbComparer(Boolean inServer) 在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.InitializeStringComparer() 在 Microsoft.SqlServer.Management.Smo.SqlPropertyMetadataProvider.PropertyNameToIDLookupWithException(String propertyName, PropertyAccessPurpose pap) 在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetDbComparer(Boolean inServer) 在Microsoft.SqlServer.Management.Smo.AbstractCollectionBase.get_StringComparer() 在 Microsoft.SqlServer.Management.Smo.SimpleObjectCollectionBase.InitInnerCollection() 在 Microsoft.SqlServer.Management.Smo.SmoCollectionBase.get_InternalStorage() 在 Microsoft.SqlServer.Management.Smo。 Microsoft.SqlServer.Management.Smo.DatabaseCollection.get_Item(String name) 上的 SmoCollectionBase.GetObjectByKey(ObjectKeyBase key)。