我们希望将SSIS包从2008年迁移到2014年。
当我们试图找出原因时,我们可以找到两件具体的事情。
A)在事件日志中,我们每次VS崩溃都会看到两个一致的错误。
i)每次都出现同样的错误:
错误应用程序名称:devenv.exe,版本:14.0.25420.1,时间戳:0x57685d85
错误模块名称: mso40uiwin32client.dll ,版本:16.0.4666.1000,时间戳:0x5a8363ef
Exception code: 0xc0000005
Fault offset: 0x0014a102
Faulting process id: 0x3730
Faulting application start time: 0x01d3e8600acedd50
Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
Faulting module path: C:\Program Files (x86)\Common Files\Microsoft Shared\Office16\mso40uiwin32client.dll
Report Id: c54747c6-db07-4897-82aa-02ae596645b1
Faulting package full name:
Faulting package-relative application ID:
ii)AccessViolation异常很常见,但堆栈每次都会显示一些或其他程序集。
应用程序:devenv.exe
框架版本:v4.0.30319
描述:由于未处理的异常,进程终止。
Exception Info: System.AccessViolationException
at Microsoft.SqlServer.Dts.Pipeline.Wrapper.CManagedComponentWrapperClass.AcquireConnections(System.Object)
at Microsoft.DataTransformationServices.Design.PipelineUtils.AcquireConnections(Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100, Microsoft.SqlServer.Dts.Runtime.Connections, Boolean)
at Microsoft.DataTransformationServices.Design.DtsComponentDesigner+<>c__DisplayClass3.<ValidateComponentInternal>b__0()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr, System.Object[], System.Object, System.Object[] ByRef)
at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessageSink)
at System.Runtime.Remoting.Proxies.AgileAsyncWorkerItem.ThreadPoolCallBack(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()
注意: 到目前为止已经尝试过以下变通方法,但没有运气。
答案 0 :(得分:0)
使用(SSIS)OLEDB Source连接到MS Access 2016数据库时,我遇到了类似的问题。 SSDT Visual Studio 2017将会永久冻结。我不得不用任务管理器杀死VS。 我使用ADO NET Source(而不是OLEDB Source)和用于OleDB / Microsoft Office 16.0 Access的.Net Provider解决了这个问题。
如果使用Access数据源关闭解决方案,那么在使用Access数据源打开解决方案之前,也必须关闭Visual Studio。
对我来说,听起来很片状。再次部署后需要进行测试-尽管可信度低:(