从IIS而不是IIS express调用C_GetSlotList时失败

从IIS而不是IIS express调用C_GetSlotList时失败,iis,cryptography,pkcs#11,Iis,Cryptography,Pkcs#11,因此,我有一个c#webservice,它最终会通过system32文件夹中的某个智能卡usb驱动程序从德国Elster toolkit(Eric)调用c#u GetSlotList()方法。 我在计算机服务器上有一张智能卡。当我在IIS Express中托管服务时,一切正常,但在IIS中则不然。有什么问题吗?是否有东西阻止IIS访问驱动程序?我确保我使用的应用程序池的标识具有管理员权限。 我正在使用Windows 7 professional,这是我得到的日志类型: 2016-10-18 15

因此,我有一个c#webservice,它最终会通过system32文件夹中的某个智能卡usb驱动程序从德国Elster toolkit(Eric)调用c#u GetSlotList()方法。 我在计算机服务器上有一张智能卡。当我在IIS Express中托管服务时,一切正常,但在IIS中则不然。有什么问题吗?是否有东西阻止IIS访问驱动程序?我确保我使用的应用程序池的标识具有管理员权限。 我正在使用Windows 7 professional,这是我得到的日志类型:

2016-10-18 15:16:58,144560  INFO: esigner       cryptokiVersion = 02.14
2016-10-18 15:16:58,144560  INFO: esigner        manufacturerID = A.E.T. Europe B.V.              
2016-10-18 15:17:01,244870 ERROR: esigner       error calling C_GetSlotList()
2016-10-18 15:17:01,244870 ERROR: esigner                    rv = 00000006
2016-10-18 15:17:01,244870 ERROR: esigner           ulSlotCount = 0
2016-10-18 15:17:01,244870 ERROR: esigner       pkcs11_init() failed
2016-10-18 15:17:01,245870  INFO: esigner  ENGINE_set_default_RSA(0436CC30) = returned 0
2016-10-18 15:17:01,245870  INFO: esigner       esiclGetToken() = end critical section

将IIS应用程序池标识更改为LocalService通常会有所帮助。别问我为什么:)

你为自己赢得了一杯啤酒,我的老板可能会吻你的脚:)。它成功了:我会的,我也只会在其他计算机上测试它。别问我为什么:)