我正在验证从Server接收的跟踪,数据类型是var二进制(MAX),但是我接收到了这个异常,我不知道它可能是什么,我留给您带数据的查询代码和它处理的方法。
例外: 来自HRESULT: 0xFFFFFE3的异常
从异常登录(这是西班牙语):
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
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
验证过程
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:对不起,我的英语不好:
发布于 2017-02-03 13:53:33
解决方案
好的,我用下面的方法来解决它,我先解释一下。
显然,我必须实例化作为一个新对象提取的特性,我爬行了一个尝试捕获,以获得错误代码的SDK在失败的进程,错误是-29和在文档中解释它是当错误在特性中,不能正确地转换-我留下的代码与更正,它完全适合我。
''' <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
https://stackoverflow.com/questions/41991934
复制相似问题