首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自HRESULT: 0xFFFFFFE3的验证DigitalPersona SDKón错误(SDK = -29)

来自HRESULT: 0xFFFFFFE3的验证DigitalPersona SDKón错误(SDK = -29)
EN

Stack Overflow用户
提问于 2017-02-01 23:44:14
回答 1查看 1.6K关注 0票数 1

我正在验证从Server接收的跟踪,数据类型是var二进制(MAX),但是我接收到了这个异常,我不知道它可能是什么,我留给您带数据的查询代码和它处理的方法。

例外: 来自HRESULT: 0xFFFFFE3的异常

从异常登录(这是西班牙语):

代码语言:javascript
运行
复制
Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración 
Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

************** Texto de la excepción **************
DPFP.Error.SDKException: Event Handler has generated an Exception ---> System.Runtime.InteropServices.COMException: Excepción de HRESULT: 0xFFFFFFE3
   en DPFP.Verification.Verification.MC_verifyFeaturesEx(SafeHandle mcContext, Int32 templateSize, Byte[] templatePt, Int32 featureSetSize, Byte[] featureSet, Int32 reserved0, IntPtr reserved1, IntPtr reserved2, IntPtr reserved3, Double& achievedFar)
   en DPFP.Verification.Verification.Verify(FeatureSet FeatureSet, Template Template, Int32 FARRequested)
   en DPFP.Verification.Verification.Verify(FeatureSet FeatureSet, Template Template, Result& Result)
   en VerifyEnrollerApp.VerifyFinger.Process(Sample Sample) en c:\users\desarrollo 02\documents\visual studio 2012\Projects\VerifyEnrollerApp\VerifyEnrollerApp\Form1.vb:línea 322
   en VerifyEnrollerApp.VerifyFinger.OnComplete(Object Capture, String ReaderSerialNumber, Sample Sample) en c:\users\desarrollo 02\documents\visual studio 2012\Projects\VerifyEnrollerApp\VerifyEnrollerApp\Form1.vb:línea 246
   en DPFP.Capture.Capture.MessageReceived(Message& m)
   --- Fin del seguimiento de la pila de la excepción interna ---
   en DPFP.Capture.Capture.MessageReceived(Message& m)
   en DPFP.Capture.Capture.MessageEvents.MessageWindow.WndProc(Message& m)


************** Ensamblados cargados **************
mscorlib
    Versión del ensamblado: 4.0.0.0
    Versión Win32: 4.6.1087.0 built by: NETFXREL4STAGE
    Código base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Microsoft.VisualStudio.HostingProcess.Utilities
    Versión del ensamblado: 11.0.0.0
    Versión Win32: 11.0.50727.1
    Código base: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualStudio.HostingProcess.Utilities/11.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.HostingProcess.Utilities.dll
----------------------------------------
System.Windows.Forms
    Versión del ensamblado: 4.0.0.0
    Versión Win32: 4.6.1087.0 built by: NETFXREL4STAGE
    Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------

选择到DataBase

代码语言:javascript
运行
复制
Private Template As DPFP.Template
Public Function CargarHuella()
        Dim conexion As New SqlConnection(Cadena_Conexion)
        Dim a As Byte()
        Dim Result As String = ""
        Dim sql As String
        Try

            conexion.Open()
            sql = "SELECT H_1 FROM HUELLAS WHERE H_Nit_ID = '11' AND H_TypeDocument_ID = '1' AND H_Document_ID = '1032494911'"

        Dim cmd As New SqlCommand(sql, conexion)

        Dim reader As SqlDataReader = cmd.ExecuteReader()

        If reader.Read Then
            a = reader.GetValue(0)
        End If
            reader.Close()
            cmd.Dispose()
            conexion.Dispose()

            Dim str As New MemoryStream
            str = New MemoryStream(a) 'Convertirmos los bites en Memory

            Dim template As New DPFP.Template(str) 'Volvemos el Memory en Template para verificar

            CargarTemplate(template)

            Result = "Exito"
        Catch ex As Exception
            Result = "Error: " & ex.ToString
        End Try

        Return Result
    End Function

Protected Sub CargarTemplate(ByVal template As DPFP.Template)
        If Me.TXTMensajes.InvokeRequired Then
            Dim d As New AddTemplateCallBack(AddressOf CargarTemplate)
            Me.Invoke(d, New Object() {template})
        Else
            Me.Template = template
        End If
    End Sub

验证过程

代码语言:javascript
运行
复制
Private Verificator As DPFP.Verification.Verification     
Protected Sub ProcessSample(ByVal Sample As DPFP.Sample)
            DibujarMapa(Sample)

            Dim caracteristicas As DPFP.FeatureSet = ExtraerCaracteristicas(Sample, DPFP.Processing.DataPurpose.Enrollment)

            If (Not caracteristicas Is Nothing) Then
                ' Comparamos las caracteristicas de la huella tomada con las del template que tenemos
                Dim result As DPFP.Verification.Verification.Result = New DPFP.Verification.Verification.Result()
                Verificator.Verify(caracteristicas, Template, result) '<----HERE IS WHERE THE EXCEPTION IS SHOW
                If result.Verified Then
                    SendMensaje("Ok", "Ok", 3)
                Else
                    SendMensaje("KO", "KO", 1)
                End If
            End If
        End Sub

什么是失败,还是我失败了?

PD:对不起,我的英语不好:

EN

回答 1

Stack Overflow用户

发布于 2017-02-03 13:53:33

解决方案

好的,我用下面的方法来解决它,我先解释一下。

显然,我必须实例化作为一个新对象提取的特性,我爬行了一个尝试捕获,以获得错误代码的SDK在失败的进程,错误是-29和在文档中解释它是当错误在特性中,不能正确地转换-我留下的代码与更正,它完全适合我。

代码语言:javascript
运行
复制
''' <summary>
''' Todo el proceso que se encarga de validar la captura de la huella
''' </summary>
''' <param name="Sample"></param>
''' <remarks></remarks>
Protected Sub ProcessSample(ByVal Sample As DPFP.Sample)
    Try
        DibujarMapa(Sample)

        Dim caracteristicas As DPFP.FeatureSet = New DPFP.FeatureSet '<---- I added this line and ready, it was fixed
        caracteristicas = ExtraerCaracteristicas(Sample, DPFP.Processing.DataPurpose.Verification)

        If (Not caracteristicas Is Nothing) Then
            ' Comparamos las caracteristicas de la huella tomada con las del template que tenemos
            Dim result As DPFP.Verification.Verification.Result = New DPFP.Verification.Verification.Result()
            CodesErrors.GetTypeCode()
            Verificator.Verify(caracteristicas, Template, result)
            If result.Verified Then
                Huella = True
                UpdateCalidad("Mensaje: " & vbCrLf & vbCrLf & "Huella verificada")
                SendMensaje("Ok", "Ok...", 3)
            Else
                Huella = False
                UpdateCalidad("Mensaje: " & vbCrLf & vbCrLf & "Huella no coincide")
                SendMensaje("KO", "KO...", 1)
            End If
        End If
    Catch ex As Exception
        If ex.HResult = -29 Then '<-- This is the error code from de SDK exception
            SendMensaje("Lo sentimos, ocurrió un error durante la validación de la huella." & vbCrLf & vbCrLf & "• Message: 'Invalid Feature Set Type'" & vbCrLf & "• Exception Code: " & ex.HResult, "Disculpenos :( - Error Número (" & ex.HResult & ")", 1)
        Else
            SendMensaje("• Exception Message: " & ex.Message & vbCrLf & vbCrLf & "• Exception Code: " & ex.HResult, "Error al Verificar", 1)
        End If
    End Try

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41991934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档