今天在弄微信扫码支付时,报错了,记录一下解决步骤,因为多个项目都有出现。

System.Security.Cryptography.CryptographicException:系统找不到指定的文件。 在System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32hr) 在System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(StringfileName,IntPtrpassword,UInt32dwFlags,BooleanpersistKeySet,SafeCertContextHandle&pCertCtx) 在System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(StringfileName,Objectpassword,X509KeyStorageFlagskeyStorageFlags) 在System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(StringfileName,Stringpassword) 在WxPayAPI.HttpService.Post(Stringxml,Stringurl,BooleanisUseCert,Int32timeout)

出现这个问题的原因根源是微信商户号证书文件的问题,具体可能出现的原因分析及解决方案:

1、在指定的路径下,没有找到证书

解决方案: 将证书放置到指定证书路径即可。

2、证书没有导入

解决方案:进入证书存放路径,双击证书,按照步骤将证书导入。

3、部署项目的IIS中,项目应用程序池的设置没有开启“加载用户配置文件”的权限

解决方案: 开启“加载用户配置文件”的权限。打开IIS管理器-->应用程序池-->找到你的应用程序-->右键-->高级设置-->在进程模型区域,有个-用户加载配置文件-选择后面为true即可。

CryptographicException:系统找不到指,CryptographicException:系统找不到指(1)

,