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即可。