Certificate issues running app in Windows 7

2019-02-11 04:38发布

I'm having some problems with my app. I'm using the 'org.mentalis.security' assembly to create a certificate object from a 'pfx' file, this is the line of code where the exception occurs:

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

This has always worked and still does in production, but for some reason it throws an exception when run in Windows 7 (tried it on 2 machines).

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

I can't find much on this message via Google, but when checking Event Viewer I get an 'Audit Failure' every time this exception occurs:

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.
<BR>
Cryptographic Operation:
 Operation: Open Key.
 Return Code: 0x2

I'm not sure why this isn't working on Win 7, I've never had problems when I was running on Vista with this. I am running VS2008 as administrator but I guess that maybe the ASP.NET user doesn't have sufficient rights or something.

It's pretty strange that the 'Algorithm name' is 'Not Available'.

Can anyone help me with this?

3条回答
The star\"
2楼-- · 2019-02-11 05:06

In IIS 7 you can do this in IIS management console.

  • Expand the server on the left
  • Click on Application Pools
  • Click on your website's application pool name and click Advanced Settings in the Actions pane on the right
  • Under the Process Model section, change Load User Profile to True
  • Click OK
  • Recycle the App Pool from the Actions pane on the right
  • Restart the website (expand Sites on the left, click on your website, click Restart in the actions pane.)
查看更多
走好不送
3楼-- · 2019-02-11 05:13

Sorry Corrected

Hi

I solved this by going to c:\windows\system32\inetsrv or syswow64\inetsrv

and running the following command

appcmd set apppool "[you app pool name]" -processModel.loadUserProfile:true

This solved it

Richard Allen

查看更多
劫难
4楼-- · 2019-02-11 05:17

I solved this by going to c:\windows\system32\inetsrv or syswow64\inetsrv

and running the following command

appcmd set apppool "" -processModel.loadUserProfile:true

This solved it

Richard Allen

查看更多
登录 后发表回答