我已经为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 [])
答案 0 :(得分:0)
我之前遇到过类似的问题。解决方案是sql server代理没有正确的权限来使用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年相同的方式显示。外部序列容器将不会附加到任何内容。