在Windows 7中运行应用程序的证书问题

我的应用程序遇到了一些问题。 我正在使用’org.mentalis.security’程序集从’pfx’文件创建证书对象,这是发生exception的代码行:

Certificate cert = Certificate.CreateFromPfxFile(publicKey, certificatePassword);

这一直在生产中并且仍在生产中,但由于某种原因,它在Windows 7中运行时抛出exception(在2台机器上试用)。

CertificateException : Unable to import the PFX file! [error code = -2146893792]

我通过Google找不到这条消息,但在查看事件查看器时,每次发生此exception时都会收到“审核失败”:

 Event ID = 5061 Source = Microsoft Windows Security Task Category = system Integrity Keywords = Audit Failure Cryptographic operation. Subject: Security ID: NT AUTHORITY\IUSR Account Name: IUSR Account Domain: NT AUTHORITY Logon ID: 0x3e3 Cryptographic Parameters: Provider Name: Microsoft Software Key Storage Provider **Algorithm Name: Not Available.** Key Name: VriendelijkeNaam Key Type: User key. 
Cryptographic Operation: Operation: Open Key. Return Code: 0x2

我不确定为什么这不适用于Win 7,当我在Vista上运行时,我从未遇到过问题。 我以管理员身份运行VS2008,但我想可能ASP.NET用户没有足够的权限或其他东西。

“算法名称”是“不可用”,这很奇怪。

谁能帮我这个?

抱歉已更正

你好

我通过转到c:\ windows \ system32 \ inetsrv或syswow64 \ inetsrv解决了这个问题

并运行以下命令

appcmd set apppool“[你的应用程序池名称]” – processModel.loadUserProfile:true

这解决了它

理查德艾伦

在IIS 7中,您可以在IIS管理控制台中执行此操作。

  • 展开左侧的服务器
  • 单击“ 应用程序池”
  • 单击您网站的应用程序池名称,然后单击右侧“ 操作”窗格中的“ 高级设置”
  • Process Model部分下,将Load User Profile更改为True
  • 单击确定
  • 从右侧的“操作”窗格中回收应用程序池
  • 重新启动网站(展开左侧的站点 ,单击您的网站,单击操作窗格中的重新启动。)

我通过转到c:\ windows \ system32 \ inetsrv或syswow64 \ inetsrv解决了这个问题

并运行以下命令

appcmd set apppool“” – processModel.loadUserProfile:true

这解决了它

理查德艾伦