我有两个使用 Azure Key Vault 作为密钥的启用了 Always Encrypted 的数据库。一个在 Azure 中,另一个在本地。当我尝试使用数据比较时,它会导致 Visual Studio 崩溃并且 VS 会重新启动。当数据库没有任何启用 AE 的表时,它不会崩溃。我已经尝试过使用和不使用“列加密设置=启用”。我使用数据比较从 Azure 中提取我们的数据库并从我的本地数据库中进行测试。我正在使用 2016 年 4 月的版本。
提前感谢您的任何建议!
事件查看器报告:
Log Name: Application
Source: .NET Runtime
Date: 5/5/2016 5:56:26 PM
Event ID: 1026
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: DESKTOP-64U74F2
Description:
Application: devenv.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidCastException
at System.Data.SqlClient.SqlBuffer.get_SqlString()
at System.Data.SqlClient.SqlDataReader.GetSqlString(Int32)
at Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.SqlTableReader.get_CurrentRow()
at Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ComparisonSession.CompareTable(Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ITableReader, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ITableReader, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.TableComparisonSetting, Int64, Int64 ByRef, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.SessionSettings)
at Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.ComparisonSession.CompareDatabases(Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.Database, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.Database, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.TableComparisonSettings, Microsoft.Data.Tools.Schema.Utilities.Sql.Compare.Data.SessionSettings)
at Microsoft.VisualStudio.Data.Tools.DataCompare.UI.Editors.DataCompareDataPopulationJob.Run()
at Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager+JobBase.<Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager.IManageableJob.RunImpl>b__22_0(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager+JobBase.Microsoft.Data.Tools.Schema.Utilities.Sql.Common.Threading2.JobManager.IManageableJob.RunImpl(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()