我有一個asp.net 4.0項目,它使用Bouncy Castle和.Net框架的組合來創建X509證書。Asp.Net CertEnroll CX509CertificateRequestPkcs10異常
它正常運行我的W7的開發機器上,而在W2008安裝時(32位,而不是R2)這段代碼:
CX509CertificateRequestPkcs10 csr = new CX509CertificateRequestPkcs10();
拋出此異常:
Unable to cast COM object of type 'System.__ComObject' to interface type 'CERTENROLLLib.CX509CertificateRequestPkcs10'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{728AB35B-217D-11DA-B2A4-000E7BBB2B09}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
起初我還以爲它可能是一個64位服務器的問題,因爲COM只有32位兼容,但服務器是32位。
該應用程序是使用Framework 4.0構建的,IIS AppPool分配的是運行4.0,集成模式,身份爲「網絡服務」 - 與我的開發機完全一樣,使用客戶端瀏覽器(IE8 32) 。
W2008-32(標準)是否不實施CERTENROLLLib開箱即用?有沒有人知道如何使它在這種情況下表現?
感謝您的任何建議!
我更新了答案,以包含解決方案。我有同樣的問題,你的解決方案爲我節省了很多時間。謝謝。 – flayn 2014-10-07 12:46:06
從2012R2到2016再次發生了嗎?我的代碼在我的W10 x64開發機器上完美工作,但不在2012R2 x64 Web服務器上工作。現在呢!非常感謝。 – fero 2017-05-02 15:05:45