System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。

在调用微信退款接口时,报错:

System.Security.Cryptography.CryptographicException:系统找不到指定的文件。在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) 在 System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) 在 System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) 在 System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password) 在 WxPayAPI.HttpService.Post(String xml, String url, Boolean isUseCert, Int32 timeout)


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

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

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

2.证书没有导入

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

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

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



猜你喜欢

转载自blog.csdn.net/lynehylo/article/details/80253333