0
我們想創建一個服務,它會自動從商店中刪除證書(使用c#)。當我們手工運行.exe時,一切都很順利。但是,當我們從該.exe創建服務時,它不會讀取商店中的證書並一直說它是空的。服務無法讀取證書存儲
我們可以做些什麼來糾正?
下面是讀取存儲,然後刪除所有找到的證書部分:
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
X509Certificate2Collection storecollection = (X509Certificate2Collection)store.Certificates;
foreach (X509Certificate2 x509 in storecollection)
{
store.Remove(x509);
}
store.Close();
謝謝你的信息。 我們按照您的建議做了,但服務一開始就崩潰了。我們使用的帳戶是否是一個域帳戶這個事實? 否則,我們編譯代碼,在一個帳戶下安裝並運行服務 - 如果不是當前用戶,那麼該存儲會被讀取? – user3356250
域帳戶不應該對服務產生影響。我之前多次在域帳戶下運行服務。它在哪裏崩潰。你有記錄發生了什麼?當您爲服務配置憑證時,是否輸入了像'domain \ username'這樣的用戶名?你給了正確的密碼嗎? – pepo
在實際做任何事之前,它在開始的時候墜毀了。用戶名和密碼絕對正確,不接受錯誤的。至於日誌,我們會嘗試獲取它。有什麼方法可以獲得商店的名稱,然後按名稱進行調用? – user3356250