我正在尝试在我的 WCF 项目中使用 winscard.dll 的连接功能连接到智能卡。Wcf 服务,正在与安装在 Windows Server 8.1 上的远程机器一起发布
ScardConnect 函数返回值 6。
public int Connect()
{
int returnCode = -2;
string[] tempStr = new string[3];
returnCode = ModWinsCard.SCardEstablishContext(ModWinsCard.SCARD_SCOPE_USER,
0, 0, ref hContext);
if (returnCode == ModWinsCard.SCARD_S_SUCCESS)
{
returnCode = ModWinsCard.SCardConnect(hContext, "ACS ACR1281 1S Dual Reader PICC 0", ModWinsCard.SCARD_SHARE_SHARED, ModWinsCard.SCARD_PROTOCOL_T0 | ModWinsCard.SCARD_PROTOCOL_T1, ref hCard, ref pdwActiveProtocol);
if (returnCode == ModWinsCard.SCARD_S_SUCCESS)
return 1;
else
return returnCode;
}
else
return returnCode;
}
Interface (IService1)
[OperationContract] [FaultContract(typeof(Service1))] int Connect(int hContext, string szReaderName, ref int phCard, ref int ActiveProtocol);
ScardConnect 功能
[DllImport("winscard.dll")]
public static extern int SCardConnect(int hContext, string szReaderName, int dwShareMode, int dwPrefProtocol, ref int phCard, ref int ActiveProtocol);
返回代码“6”是什么意思。
注意:Wcf 项目构建操作:x86 客户端项目构建操作:x86