-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problema de concorrência na leitura entre aplicações (pt.portugal.eid) - C# #173
Comments
Boa tarde, os acessos concorrentes ao mesmo cartão podem gerar erros de facto. O ideal seria tentar evitar os acessos concorrentes coordenando as duas aplicações, se possível. Internamente no middleware tentamos que os acessos concorrentes não quebrem as operações de assinatura usando as funções Se conseguir partilhar os logs gerados nas aplicações podemos investigar melhor o issue. Deve ativar o modo de diagnóstico através da página de configurações da aplicação: Os ficheiros de log são gerados em Sobre a componente/DLL eidpt sabemos que é um projeto não-oficial e que está abandonado desde há bastante tempo, por isso não recomendamos o seu uso. |
Bom dia, Obrigado pela resposta. Criei o seguinte cenário de teste que retornou um erro: 1- Abri as duas aplicações (A e B) C:\_Dev\AplicaçãoA.Shell.exe - 2024-07-26 10:06:09 - 20220|13392 - dialog - DEBUG: --> DlgAskPin() returns DLG_OK Em ambas as aplicações estou a invocar o BeginTransaction antes da leitura do PTEID_ReaderContext.getEIDCard(), e no finally no scope (try) da leitura dos dados invoco o EndTransaction. EDIT: Pelo que consegui apurar nos logs, o erro está a ser gerado na invocação deste método: Sendo que é retornado o valor 0x80100068 e a documentação da Microsoft refere o seguinte: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardtransmit |
Num cenário com 2 aplicações (C#) que estão ao mesmo tempo à espera da leitura de dados do mesmo Cartão do Cidadão no mesmo leitor, a primeira aplicação a fazer a leitura funciona bem, mas a segunda retorna um erro.
Quando usado a implementação através do namespace eidpt funciona bem, mas com o pt.portugal.eid já não.
Já implementei uma abordagem com Begin e End Transaction, mas o problema continua.
O que recomendam para ultrapassar esta concorrência?
The text was updated successfully, but these errors were encountered: