我有一个 asp.net 4.0 项目,它结合使用 Bouncy Castle 和 .Net 框架来创建 X509 证书。
它在我的 W7 开发机器上正常运行,但是当安装在 W2008(32 位,而不是 r2)上时,这段代码:
CX509CertificateRequestPkcs10 csr = new CX509CertificateRequestPkcs10();
抛出此异常:
无法将“System.__ComObject”类型的 COM 对象转换为接口类型“CERTENROLLLib.CX509CertificateRequestPkcs10”。此操作失败,因为 IID 为“{728AB35B-217D-11DA-B2A4-000E7BBB2B09}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .
最初我认为这可能是 64 位服务器问题,因为 COM 仅兼容 32 位,但服务器是 32 位的。
该应用程序是使用 Framework 4.0 构建的,分配的 IIS AppPool 正在运行 4.0,集成模式,具有“网络服务”的标识 - 与我的开发机器上的所有内容完全相同,与使用的客户端浏览器 (IE8 32) 一样。
W2008-32(标准)是否没有开箱即用地实现 CERTENROLLLib?有谁知道如何使它在这种情况下表现?
感谢您的任何建议!