SSDT BI自定义连接管理器AccessViolationException

时间:2015-02-26 20:08:58

标签: c# ssis sql-server-2014 ssdt-bi

我已经为SSDT BI(SSIS)创建了一个自定义连接管理器,它将使用Oracle的托管数据访问库(Oracle.ManagedDataAccess.dll)连接到Oracle数据库。

在我的开发机器上,此连接管理器和自定义"数据源"与之配合的管道组件,可以正常工作。当我将程序包部署到服务器并尝试运行它时,程序包将始终失败并出现" AccessViolationException"。

服务器正在运行带有Sql Server 2014的Windows Server 2012R2

到目前为止,调试还没有给我很多信息。当我逐步执行我的代码时,我的空的默认构造函数被调用,但没有别的。一旦它退出构造函数,我就会得到异常。我的自定义类中没有其他方法被调用。

这里是转储到Windows事件日志的信息。

  

应用程序:ISServerExec.exe   框架版本:v4.0.30319   描述:由于未处理的异常,进程终止。   异常信息:System.AccessViolationException   堆:      在Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackagePersist100.LoadPackageFromXML(System.Object,Boolean,Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSEvents100)      在Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackagePersist100.LoadPackageFromXML(System.Object,Boolean,Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSEvents100)      在Microsoft.SqlServer.Dts.Runtime.Package.LoadFromXML(System.String,Microsoft.SqlServer.Dts.Runtime.IDTSEvents)      在Microsoft.SqlServer.Dts.Runtime.Project.LoadPackage(Microsoft.SqlServer.Dts.Runtime.IProjectStorage,Microsoft.SqlServer.Dts.Runtime.Package,System.String,Microsoft.SqlServer.Dts.Runtime.IDTSEvents)      在Microsoft.SqlServer.Dts.Runtime.PackageItem.Load(Microsoft.SqlServer.Dts.Runtime.IDTSEvents)      在Microsoft.SqlServer.Dts.Runtime.PackageItem.LoadPackage(Microsoft.SqlServer.Dts.Runtime.IDTSEvents)      在Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ISServerExecutionEvents.LoadPackage(Microsoft.SqlServer.Dts.Runtime.PackageItem)      在Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.StartPackage()      在Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.PerformOperation()      在Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ExecuteMain.Main(System.String [])

2 个答案:

答案 0 :(得分:0)

我之前遇到过类似的问题。解决方案是sql server代理没有正确的权限来使用dll文件。

可能的修复:

  • 检查服务器上dll的位置。
  • 确认使用dll的权限。

抱歉,我无法提供更精确的修复,我网站上的DBA最终为我修复了这个,这是他们给我的总结。

答案 1 :(得分:0)

你能为我勾勒出SSIS包的大纲吗?

我预感到在SSIS 2008中嵌套Sequence Container对象时会出现此问题。当您使用SQL Business Intelligence Development Studio 2008创建包,并嵌套Sequence Containers,然后将包升级到SSIS 2012或更高版本时,然后在SQL Server Data Tools 2012或更高版本中打开包,该包将不会以与2008年相同的方式显示。外部序列容器将不会附加到任何内容。