我正在尝试使用 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...
非常感谢。理查德