0

我为 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 的 Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackagePersist100.LoadPackageFromXML(System.Object, Boolean, Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSEvents100)。 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。

4

2 回答 2

0

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

可能的修复:

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

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

于 2015-03-02T05:31:42.543 回答
0

你能为我画出 SSIS 包的轮廓吗?

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

于 2016-08-31T12:57:58.870 回答