【转发】本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】的解决方案
本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】,这是由于服务器 IIS 和本地 IIS 默认配置不一致引起的,解决方案如下:
修改服务器 IIS 该网站的应用程序池配置项:【加载用户配置文件】 改为 True 即可~
在微信支付V3中有个签名方法用到了:
protected static string Sign(string message, string privateKey) { try { byte[] keyData = Convert.FromBase64String(privateKey); using (CngKey cngKey = CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)) using (RSACng rsa = new RSACng(cngKey)) { byte[] data = Encoding.UTF8.GetBytes(message); return Convert.ToBase64String(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1)); } } catch(Exception ex) { return ""; } }
转自:https://blog.csdn.net/cnlol/article/details/109046413