SQL Server迭代服务(SSIS)-如何获取包错误消息



有人帮我吗?

我在我的包中运行一个Script Taks,用于使用FtpClientConnection发送和接收文件,并进行一些测试,我正在模拟可能失败的情况。

编辑:

当我在调试模式下运行脚本任务时,我会收到以下错误消息:"{"Exceção de HRESULT:0xC001602A"}"和此错误代码:-1073651670

正在上查找此错误代码http://technet.microsoft.com/pt-br/library/ms345164.aspx我发现"请求的FTP操作中出现错误。详细的错误描述:%1。"

当我的脚本任务抛出错误时,我会收到一条不同的消息:"脚本返回了一个失败结果"。

但在我的包错误中,我的脚本任务中给出了相同的消息:"错误:请求的FTP操作中发生错误。详细的错误描述:服务器名称或地址无法解决。"

如何转换我的包给出的消息中的错误"Exceção de HRESULT:0xC001602A"?

清楚吗?

提前感谢。。。

我在互联网上找到了这段代码,但我不知道为什么当我在调试模式下运行它时,我会收到以下消息:"Exceção de HRESULT:0xC001602A"在SQL作业中,我会得到以下消息:"请求的FTP操作中发生错误。详细的错误描述:不允许使用密码。"

SSIS有点疯狂,但它正在发挥作用。。。

谢谢。。。

catch (COMException ex)
{
    string symbolicName = GetSymbolicName(ex.ErrorCode);
    Console.WriteLine("Symbolic Name: {0}", symbolicName);
}
public static string GetSymbolicName(int errorCode)
{
    string symbolicName = string.Empty;
    HResults hresults = new HResults();
    foreach (FieldInfo fieldInfo in hresults.GetType().GetFields())
    {
        if ((int)fieldInfo.GetValue(hresults) == errorCode)
        {
            symbolicName = fieldInfo.Name;
            break;
        }
    }
    return symbolicName;
}

http://blogs.msdn.com/b/mattm/archive/2009/08/03/looking-up-ssis-hresult-comexception-errorcode.aspx

由于这对我有帮助,我想用VB.Net版本的上述C#:)

Catch ComEx as COMException
    Console.WriteLine("Symbolic Name: {0}", GetSymbolicName(ComEx.ErrorCode))
End Try
Public Shared Function GetSymbolicName(ByVal errorCode As Long) As String
    Dim symbolicName As String = String.Empty
    Dim hresults As HResults = New HResults
    Dim thisError As Integer = Int32.Parse(errorCode.ToString)
    For Each fieldInfo As FieldInfo In hresults.GetType().GetFields()
        If Int32.Parse(fieldInfo.GetValue(hresults).ToString) = thisError Then
            symbolicName = fieldInfo.Name
            Exit For
        End If
    Next
    Return symbolicName
End Function

只是一个警告,我实际上在两行中(根据C#)调用了函数,但我想不出有什么理由不在一行中调用Console.Writeline函数。

最新更新