2011年11月14日

解決 WCF 用程式載入 X.509 憑證服務而發生「 CryptographicException:發生內部錯誤」的問題

當透過程式載入 X.509憑證後並要取得 WCF 服務時,會發生下面的例外情況:


此問題的解決辦法是在載入 X.509 的類別上加入 X509KeyStorageFlags.MachineKeySet 這個參數:
X509Certificate2 certificate = new X509Certificate2(
     Server.MapPath("~/App_Code/WebService/cert/cert.pfx"),  
     "password", 
     X509KeyStorageFlags.MachineKeySet);
目前測試就算 StoreLocation 為 CurrentUser,而使用 X509KeyStorageFlags.UserKeySet 或是其它的列舉值問題似乎仍然會發生,所以一定要設定 X509KeyStorageFlags.MachineKeySet 這個參數才能解決這個例外的錯誤,不知道網友是否知道這錯誤發生的原因…

沒有留言:

張貼留言