今天在弄微信扫码支付时,报错了,记录一下解决步骤,因为多个项目都有出现。
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即可。
,