1

我正在尝试使用 VS 2010 在 SQL Server 2012 上使用 SSIS ezAPI 库。我一直在查看 Bill Fellows 的非常有用的博客和示例以及 ezAPI 附带的示例。顺便说一句,我的最终目标是自动生成简单的验证平面填充输入到 ADO.net 目标,这些目标通过 VS 2010 应用程序自动映射。

我遇到的问题是,在所有示例中,无论是 ezAPI 还是 @billinkc,我都遇到了无法解决的任务错误。我在下面发布的错误日志来自使用 bills replicate db 示例

billfellows.blogspot.co.uk/2012/03/replicate-tables-with-ssis-ezapi.html

.

Microsoft.SqlServer.Dts.Runtime.DtsRuntimeException was unhandled
 HelpLink=#-1073614806
 Message=Cannot create a task from XML for task "", type ", {E3CFBEA8-1F48-40D8-91E1-   2DEDC1EDDD56}" due to error 0x80070057 "The parameter is incorrect.".

  Source={8975114C-7D4E-4B27-8FB9-1B7EC264B4A7}
  ErrorCode=-1073659898
  StackTrace:
   at Microsoft.SqlServer.Dts.Runtime.Executables.Add(String moniker)
   at Microsoft.SqlServer.SSIS.EzAPI.EzExecutable.CreateExecutable()
   at Microsoft.SqlServer.SSIS.EzAPI.EzExecutable..ctor(EzContainer parent)
   at Microsoft.SqlServer.SSIS.EzAPI.EzSrcPackage`2..ctor()
   at Microsoft.SqlServer.SSIS.EzAPI.EzSrcDestPackage`4..ctor()
   at EzAPIRecipies.ReplicateOMatic..ctor(String sourceServer, String sourceDatabase, String table, String destinationServer, String destinationDatabase) in c:\users\administrator\documents\visual studio 2010\Projects\testauto6\testauto6\replicate1.cs:line 28
   at EzAPIRecipies.Driver.ReplicateTables() in c:\users\administrator\documents\visual studio 2010\Projects\testauto6\testauto6\Program.cs:line 41
   at EzAPIRecipies.Driver.Main(String[] args) in c:\users\administrator\documents\visual studio 2010\Projects\testauto6\testauto6\Program.cs:line 23
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

InnerException: System.Runtime.InteropServices.COMException HelpLink=#-1073614806 Message=由于错误 0x80070057“参数为不正确。”

   Source={8975114C-7D4E-4B27-8FB9-1B7EC264B4A7}
   ErrorCode=-1073659898
   StackTrace:
        at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSExecutables100.Add(String bstrMoniker)
        at Microsoft.SqlServer.Dts.Runtime.Executables.Add(String moniker)
       InnerException: 

我的怀疑是,由于每当我尝试使用 bill 或 ezAPI 示例创建数据流时都会收到此错误,因此我的特定构建配置存在一些问题。

当我在我的 .net 项目中引用 ezAPI.dll 时,我正在引用 managedDTS 和 DTSruntimewrapper (因为我现在远离服务器,所以内存中的 dll)。我必须确保我使用 .net 4.o 框架(不是客户端)。

所以我的问题是:我需要使用特定的顺序/方法/流程来配置能够使用上面的配置吗?我已经成功地创建了简单的包,这些包具有成功运行的容器和变量。问题似乎出在数据流和任务上。

任何指导都非常受欢迎。例如,我是否应该回归到 SQL 2008 R2 而不是 2012...

非常感谢。理查德

4

1 回答 1

2

好的,所以 Frank 解决了这个问题,我使用的 ezAPI 版本与 SQL Server 2012 不兼容,因此该错误是此兼容性问题的有用标志。

因此,您需要从头开始构建 2012。

要为 2012 创建兼容版本,您必须执行以下步骤:

1/从codeplex库下载代码导航到(http://sqlsrvintegrationsrv.codeplex.com/releases/view/82369)点击更改集86517链接(http://sqlsrvintegrationsrv.codeplex.com/SourceControl/changeset/view /86517 ) 然后下载代码和 c# 项目文件

2/ 构建项目。您可能会发现库的问题,Bill 回答了一个有用的问题(SQL Server 2012 的 VSTAScriptingLib)现在可以正常工作,并且我已经成功地创建和运行数据流任务。

谢谢你让我走上正轨。

很高兴。理查德

于 2013-09-23T12:36:09.150 回答