2014-04-08 49 views
1

我遇到了一個錯誤,我試圖打開一個p12密鑰存儲庫。這在開發過程中工作正常,但是當我編譯並移動到生產服務器時,會出現「找不到對象」錯誤。CryptographicException「找不到對象」打開密鑰存儲區

關於我所知道的這一切是因爲密鑰庫文件不存在。當我從服務器中刪除存儲時,錯誤消息更改爲「系統找不到指定的文件」。

任何想法是什麼問題可以或如何調試?不幸的是我不能一步一步,因爲這是編譯代碼。

這裏的痕跡:

System.Security.Cryptography.CryptographicException: Object was not found. 

    at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) 
    at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) 
    at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) 
    at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password) 
    at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password) 

回答

7

問題解決了之後不久。分辨率如下:

  • 在IIS上打開應用程序池高級設置。
  • 集加載用戶配置爲TRUE
  • 設置身份到本地服務
  • 回收應用程序池
+0

+1分享你的答案,我尊重這種態度。 –

+0

很高興。謝謝! – christok

+0

爲我工作!謝謝 –

1

設置IIS應用程序池使用NetworkService身份,而不是ApplicationPoolIdentity爲我工作。