Структура моего проекта
myApp
-->WCFSerLibrary
-->ClassLib1
-->ClassLib2 // This one uses winscard.dll
Я хотел связаться с подключенным смарт-картой.
Четыре шага, которым я следую для этого,
- SCardEstablishContext
- Получить имя читателя через SCardListReaders
- СКардКоннект
- Чтение с помощью SCardTransmit
Первые три шага выполняются успешно, но когда я пытаюсь выполнить SCardTransmit, он возвращает мне код ответа 87.
Вторая сторона. Вышеупомянутый сценарий - это когда я вызываю его из службы WCF. Теперь я использую тот же ClassLib2 в приложении Windows FORm, с которым оно правильно взаимодействует.
retCode = ModWinsCard.SCardTransmit(hCard, ref pioSendRequest, ref SendBuff[0], sendLen, ref pioSendRequest, ref RecvBuff[0], ref recvLen);
где как в классе ModWinsCard
[DllImport("winscard.dll"l)]
public static extern Int64 SCardTransmit(UInt64 hCard, ref SCARD_IO_REQUEST pioSendRequest, ref byte SendBuff, int SendBuffLen, ref SCARD_IO_REQUEST pioRecvRequest, ref byte RecvBuff, ref int RecvBuffLen);