【发布时间】:2015-11-02 14:54:29
【问题描述】:
我正在尝试在我的 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)
[操作合同] [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
【问题讨论】:
-
你能分享更多的代码吗?
-
好的,我编辑了。你能检查一下吗? @MichaelRoland
-
好吧,这两个问题仍然问的完全一样。因此,关闭其中一个问题,否则就有被关闭为重复项的风险。
标签: c# wcf dll smartcard winscard