【发布时间】:2014-08-21 14:14:16
【问题描述】:
我有一个 vb 应用程序,它使用单击事件来触发位于 sql 2008r2 x86 服务器上的 SSIS 包。 sql server 和集成服务都是 32 位的。 vb 应用程序是 32 位的,但我仍然收到以下错误消息:
您的应用程序中出现未处理的异常... Microsoft.SQLServer.DTS.Runtime.DtsComException:找不到集成服务类。确保在运行应用程序的计算机上正确安装了集成服务。此外,如果您正在运行 64 位应用程序,请确保安装了 64 位版本的集成服务。
客户端计算机到底在寻找什么?我需要单独安装什么或作为部署包的一部分安装才能使这项工作正常运行?
应用程序在安装了 sql 一切以及所有 Visual Studio 工具的开发盒上运行时没有错误。但是,当我将它部署到最终用户时,我会收到上述消息。我是否理解上述消息说我必须在客户端计算机上安装集成服务才能在我的应用程序中使用 Microsoft.SQLServer.DTSRuntime?如果是这样,那似乎很笨拙。更不用说在数百个桌面上安装它是不可行的。
应用程序中的代码很简单,我认为这不是问题,但我会将其粘贴在这里以防万一。
Private Sub btnISupplierImport_Click(sender As Object, e As EventArgs) Handles btnISupplierImport.Click
'Executes SSIS job to import customer requirements.
Dim appReader As New System.Configuration.AppSettingsReader
Dim app As New Microsoft.SqlServer.Dts.Runtime.Application()
Dim package As New Microsoft.SqlServer.Dts.Runtime.Package()
Dim jobName As String
Dim ssisServerName As String
Dim msg As String = "Importing requirements"
Dim title As String = "Import"
Dim style As MsgBoxStyle = MsgBoxStyle.OkCancel
Dim response = MsgBox(msg, style, title)
If response = MsgBoxResult.Ok Then
Try
jobName = appReader.GetValue("CustomerRequirementsImportJobName", GetType(System.String))
ssisServerName = appReader.GetValue("CustomerRequirementImportServerName", GetType(System.String))
package = app.LoadFromSqlServer(jobName, ssisServerName, "Bob", "Password", Nothing)
package.Execute()
MessageBox.Show("Finished Importing")
Catch ex As DtsException
'MessageBox.Show(ex)
End Try
End If
End Sub
最后,Microsoft.SQLServer.ManagedDTS 和 Microsoft.SQLServer.DTSRuntimeWrap 引用设置为复制本地,因此它在用户计算机上,但我仍然收到错误。 非常感谢您对此的任何帮助。我已经为此苦苦挣扎了一个多星期,仍然没有驯服它。
【问题讨论】:
-
我无法从 .net 应用程序启动 SSIS 包。有效的是创建一个启动 SSIS 包的作业,并使用 SQL 命令从 .net 应用程序启动该作业。
-
感谢标签!用少了几行代码就可以解决问题。
标签: sql sql-server vb.net ssis