运行 来自 WinForms 应用程序的 SSIS 包 - 粗糙错误
Running SSIS Package from WinForms app - Gnarly Error
我有一个 winforms 应用程序,它使用 Microsoft.SqlServer.ManagedDTS
来加载和执行 SSIS 包。当 运行 在本地调试和安装时,包运行正常,当安装在开发服务器上时,包运行正常。当部署到实时服务器上时,出现以下错误。
我 运行 不知道要检查什么,我不想放弃使用这种执行我的程序包的方法,因为这会给应用程序增加了我们真正不需要的进一步复杂性。不想介绍。有什么想法吗?
为了清楚起见,我检查了:
- SSIS 已安装且版本相同 (Windows/SQL Server 2008)
我在 google 搜索 useLegacyV2RuntimeActivationPolicy="true"
之后添加了以下 app.config 键
尝试编译为 32 位和 64 位应用程序
确保DLL已在目标机器的GAC中注册
两个框的所有权限都相同
报错的源码摘录如下:
var app = new Microsoft.SqlServer.Dts.Runtime.Application();
var pkg = app.LoadPackage(strSSISPath, null);
pkg.ImportConfigurationFile(strSSISConfig);
var result = pkg.Execute();
if (result.Equals(DTSExecResult.Success))
{
string strMsg = strMHType + " extract completed successfully.";
MessageBox.Show(strMsg, strMHType, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
foreach (var err in pkgMHMDS.Errors)
{
MessageBox.Show(err.Description, strMHType, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
MessageBox.Show(strMHType + @" extract failed!", strMHType, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
pkgMHMDS.Dispose();
我们看到的错误(COM class 错误)是因为目标机器上没有安装Microsoft.SqlServer.ManagedDTS dll 的版本。虽然我们确实将 dll 安装到 GAC 中,但我们无法解决该错误,因为 Integration Services 是一个服务器组件,无法重新分发到客户端计算机。该错误信息量不大,但本质上它试图说的是它正在尝试加载一个程序集,该程序集的地址存储在安装客户端工具 SDK 时创建的注册表项中。
我有一个 winforms 应用程序,它使用 Microsoft.SqlServer.ManagedDTS
来加载和执行 SSIS 包。当 运行 在本地调试和安装时,包运行正常,当安装在开发服务器上时,包运行正常。当部署到实时服务器上时,出现以下错误。
我 运行 不知道要检查什么,我不想放弃使用这种执行我的程序包的方法,因为这会给应用程序增加了我们真正不需要的进一步复杂性。不想介绍。有什么想法吗?
为了清楚起见,我检查了:
- SSIS 已安装且版本相同 (Windows/SQL Server 2008)
我在 google 搜索
useLegacyV2RuntimeActivationPolicy="true"
之后添加了以下 app.config 键
尝试编译为 32 位和 64 位应用程序
确保DLL已在目标机器的GAC中注册
两个框的所有权限都相同
报错的源码摘录如下:
var app = new Microsoft.SqlServer.Dts.Runtime.Application();
var pkg = app.LoadPackage(strSSISPath, null);
pkg.ImportConfigurationFile(strSSISConfig);
var result = pkg.Execute();
if (result.Equals(DTSExecResult.Success))
{
string strMsg = strMHType + " extract completed successfully.";
MessageBox.Show(strMsg, strMHType, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
foreach (var err in pkgMHMDS.Errors)
{
MessageBox.Show(err.Description, strMHType, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
MessageBox.Show(strMHType + @" extract failed!", strMHType, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
pkgMHMDS.Dispose();
我们看到的错误(COM class 错误)是因为目标机器上没有安装Microsoft.SqlServer.ManagedDTS dll 的版本。虽然我们确实将 dll 安装到 GAC 中,但我们无法解决该错误,因为 Integration Services 是一个服务器组件,无法重新分发到客户端计算机。该错误信息量不大,但本质上它试图说的是它正在尝试加载一个程序集,该程序集的地址存储在安装客户端工具 SDK 时创建的注册表项中。