Certificate issues running app in Windows 7

二次信任 提交于 2019-12-30 05:20:12

问题


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?


回答1:


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




回答2:


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:


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



来源:https://stackoverflow.com/questions/2663011/certificate-issues-running-app-in-windows-7

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!