Pregunta

Estoy actualizando una aplicación de tarjeta inteligente (2 .NET utilizando winscard.dll) para funcionar en Windows 7. Sólo se requieren cambios menores de 32 bits. En virtud de 64 bits no parece haber una SCardConnectA llamando ala - que se sienta y no vuelve. Detener el servicio de tarjeta inteligente / extracción de la tarjeta permite a la aplicación completa.

Los usos de aplicaciones .NET INTEROP así descartar esta posibilidad, he intentado llamar scardconnectA desde un C ++ DLL con el mismo resultado. Esto ocurre en los dispositivos TODOS y Gemalto. Hasta ahora, en la aplicación está claro que tiene la configuración y habló con el lector y la presencia de un determinado tarjeta.

¿Alguna sugerencia sobre cómo investigar? ¿Hay un valor de tiempo de espera pueda aplicar aquí?

Gracias,

Davy Mitchell

¿Fue útil?

Solución 4

Ahora tengo una solución (disculpas por tomar unos días para llegar hasta aquí).

Aparece hay un cambio de comportamiento en Windows de 64 bits 7. Hubo un BeginTransaction sin un EndTransaction en la aplicación y esto parece haber sido causando la caída. Por alguna razón Windows de 32 bits se perdona de esta.

Gracias de nuevo a todos los que dejaron un mensaje.

Davy Mitchell

Otros consejos

tendría que trabajar con los respectivos fabricantes para llegar a una solución. Usted no publicar cualquier fragmento para verificar que usted hizo algo mal, lo dudo si tiene una doble comprobación de la conducta en un programa nativo. Y hay algunas maneras que buscar a tientas los argumentos. El uso de la versión Unicode, como todo el mundo lo hace, sería una posibilidad remota.

Esta es una especie difícil de solicitud de soporte, que está trabajando con dos partes, Microsoft y el proveedor de la tarjeta, que son susceptibles de señalar con el dedo el uno al otro. Su única esperanza real para una solución rápida es forzar su aplicación para ejecutarse en modo de 32 bits mediante el establecimiento de la configuración de la plataforma de destino a x86.

La mayoría de los lectores de tarjetas inlcude un instalador independiente para los conductores de 64 bits y controladores de 32 bits - gemalto definitivamente tiene esto (ver http://support.gemalto.com/?id=46 para una página de ejemplo con múltiples instaladores lector para diferentes arquitecturas).

Ha revisado doble para asegurarse de que está utilizando controladores de 64 bits en el sistema operativo de 64 bits?

  • ¿Por qué usan SCardConnectA en lugar de SCardConnect?
  • Una colgando SCardConnect puede significar que hay que hacer algo con la tarjeta de otra aplicación, ¿está seguro de que este no es el caso?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top