SSIS 和 EzAPI:调用 EzDerivedColumn 的构造函数导致 HRESULT:0xC0048021
SSIS & EzAPI: Calling constructor of EzDerivedColumn results in HRESULT: 0xC0048021
我遇到了 SSIS 和 EzAPI 的问题。这是代码
EzPackage package = new EzPackage();
package.Name = "[Insert My Table Name]";
EzDataFlow parent = new EzDataFlow(package);
dataFlow.Name = package.Name;
EzFlatFileCM destConn = new EzFlatFileCM(parent);
destConn.ConnectionString = connectionString;
destConn.Format = FlatFileFormat.Delimited;
destConn.ColumnDelimiter = "";
destConn.RowDelimiter = "\n";
destConn.ColumnNamesInFirstDataRow = false;
destConn.LocaleID = 127;
if (isUnicode)
destConn.CodePage = 65001;
EzFlatFileDestination destination = new EzFlatFileDestination(parent);
destination.Connection = destConn;
destination.Overwrite = true;
/// ColumnSchema is a container for some column information
foreach (ColumnSchema col in columns)
{
IDTSConnectionManagerFlatFileColumn100 newColumn = data.Columns.Add();
newColumn.ColumnType = "Delimited";
newColumn.DataType = col.Type;
newColumn.ColumnDelimiter = IsLastColumnInArray(col ) ? "\n" : "";
newColumn.ColumnWidth = (col.Type == DbColumnType.LongString) ? (int) Constants.LongStringLength : (int) Constants.StringLength;
var columnName = newColumn as IDTSName100;
if (columnName != null)
columnName.Name = GetColumnAlias(col.Name, columns);
}
List<EzFlatFileDestination> destinations = new List<EzFlatFileDestination>();
destinations.Add(destin);
/// This line will blow up
EzDerivedColumn derivedColumn = new EzDerivedColumn(parent);
错误信息:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in EzAPI.dll
Additional information: Exception from HRESULT: 0xC0048021
现在,这是我的设置:
- 我安装了 Microsoft SQL Server 2012 Client SDK 并确保所有 v110 DLL 都安装在 Program Files 和 GAC 中(是的,他们都说 11.0.0.0)
- 我通过下载 EzAPI 的最新源代码构建了 EzAPI.dll:https://sqlsrvintegrationsrv.codeplex.com/SourceControl/latest。我确保项目中的所有 DLL 引用都指向 11.0.0.0 和特定版本 = true
- GAC 和程序文件中还有其他版本的Microsoft.SqlServer.****.dll 文件,例如v100 和v120。然而,这些其他版本的 DLL 没有在程序的其他任何地方使用,它们也没有包含在我程序的 bin 文件夹中。
- 构建 EzAPI.dll 和我的项目
时,.NET 版本为 4.5
总之,我被难住了。我在网上找到了有此错误的文章,但他们通常谈论 DLL 不匹配或某些 DLL 未安装,但我不明白这些情况如何适用于我。我是否以某种方式滥用了 EzDerivedColumn?好吧,这很难知道,因为我的错误信息非常模糊。
如果对此有任何帮助,那就太好了。谢谢!
我建议您使用下面link中描述的方法来获取有关运行时错误消息的更多详细信息:
原来我机器上没有安装SSIS 2012
我遇到了 SSIS 和 EzAPI 的问题。这是代码
EzPackage package = new EzPackage();
package.Name = "[Insert My Table Name]";
EzDataFlow parent = new EzDataFlow(package);
dataFlow.Name = package.Name;
EzFlatFileCM destConn = new EzFlatFileCM(parent);
destConn.ConnectionString = connectionString;
destConn.Format = FlatFileFormat.Delimited;
destConn.ColumnDelimiter = "";
destConn.RowDelimiter = "\n";
destConn.ColumnNamesInFirstDataRow = false;
destConn.LocaleID = 127;
if (isUnicode)
destConn.CodePage = 65001;
EzFlatFileDestination destination = new EzFlatFileDestination(parent);
destination.Connection = destConn;
destination.Overwrite = true;
/// ColumnSchema is a container for some column information
foreach (ColumnSchema col in columns)
{
IDTSConnectionManagerFlatFileColumn100 newColumn = data.Columns.Add();
newColumn.ColumnType = "Delimited";
newColumn.DataType = col.Type;
newColumn.ColumnDelimiter = IsLastColumnInArray(col ) ? "\n" : "";
newColumn.ColumnWidth = (col.Type == DbColumnType.LongString) ? (int) Constants.LongStringLength : (int) Constants.StringLength;
var columnName = newColumn as IDTSName100;
if (columnName != null)
columnName.Name = GetColumnAlias(col.Name, columns);
}
List<EzFlatFileDestination> destinations = new List<EzFlatFileDestination>();
destinations.Add(destin);
/// This line will blow up
EzDerivedColumn derivedColumn = new EzDerivedColumn(parent);
错误信息:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in EzAPI.dll
Additional information: Exception from HRESULT: 0xC0048021
现在,这是我的设置: - 我安装了 Microsoft SQL Server 2012 Client SDK 并确保所有 v110 DLL 都安装在 Program Files 和 GAC 中(是的,他们都说 11.0.0.0) - 我通过下载 EzAPI 的最新源代码构建了 EzAPI.dll:https://sqlsrvintegrationsrv.codeplex.com/SourceControl/latest。我确保项目中的所有 DLL 引用都指向 11.0.0.0 和特定版本 = true - GAC 和程序文件中还有其他版本的Microsoft.SqlServer.****.dll 文件,例如v100 和v120。然而,这些其他版本的 DLL 没有在程序的其他任何地方使用,它们也没有包含在我程序的 bin 文件夹中。 - 构建 EzAPI.dll 和我的项目
时,.NET 版本为 4.5总之,我被难住了。我在网上找到了有此错误的文章,但他们通常谈论 DLL 不匹配或某些 DLL 未安装,但我不明白这些情况如何适用于我。我是否以某种方式滥用了 EzDerivedColumn?好吧,这很难知道,因为我的错误信息非常模糊。
如果对此有任何帮助,那就太好了。谢谢!
我建议您使用下面link中描述的方法来获取有关运行时错误消息的更多详细信息:
原来我机器上没有安装SSIS 2012