Domanda

sto aggiornando un'applicazione smart card (.net 2 utilizzando winscard.dll) per funzionare su Windows 7. Sono richieste solo piccole modifiche per 32bit. Sotto a 64 bit sembra che vi sia una vocazione SCardConnectA blocco - si siede e non ritorna. L'arresto del servizio smart card / rimozione della scheda consente all'applicazione per completare.

Gli usi app Interoperabilità .NET in modo da escludere questo caso, ho provato a chiamare scardconnectA da un ++ Dll C con lo stesso risultato. Ciò si verifica su dispositivi TODOS e Gemalto. Finora l'applicazione che ha chiaramente l'installazione e ha parlato con il lettore e presenza determinato di una carta.

Qualche suggerimento su come indagare? C'è un valore di timeout posso applicare qui?

Grazie,

Davy Mitchell

È stato utile?

Soluzione 4

Ora ho una soluzione di (scuse per prendere un paio di giorni per arrivare fino qui).

sembra che ci sia un cambiamento di comportamento in 64 bit di Windows 7. C'è stato un BeginTransaction senza EndTransaction nell'applicazione e questo sembra essere stato causando il blocco. Per qualche ragione Windows a 32 bit è stato indulgente di questo.

Grazie ancora a tutti coloro che hanno lasciato un messaggio.

Davy Mitchell

Altri suggerimenti

Si dovrà lavorare con i rispettivi produttori per arrivare a una soluzione. Non hai inviare alcun frammento per verificare che hai fatto qualcosa di sbagliato, dubito che se hai ricontrollato il comportamento in un programma nativo. E lì un paio di modi di armeggiare gli argomenti. Utilizzando la versione Unicode, come tutti gli altri non, sarebbe una remota possibilità.

Questo è un tipo difficile, di richiesta di supporto, si sta lavorando con due partiti, Microsoft e il produttore della scheda, sono suscettibili di puntare il dito a vicenda. La tua unica vera speranza per una soluzione rapida è quello di forzare la vostra applicazione per l'esecuzione in modalità a 32 bit impostando l'impostazione Piattaforma di destinazione per x86.

La maggior parte dei lettori di schede inlcude un programma di installazione separato per i driver a 64 bit e driver a 32 bit - Gemalto sicuramente fa questo (vedi http://support.gemalto.com/?id=46 per una pagina di esempio con più installatori lettore per diverse architetture).

Hai controllato doppio per garantire che si sta utilizzando i driver a 64 bit con il sistema operativo a 64 bit?

  • Perché usate SCardConnectA invece di SCardConnect?
  • Un pendente SCardConnect può significare che c'è un'altra applicazione fare qualcosa con quella carta, sei sicuro che questo non è il caso?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top