使用 CngKey错误提示:系统找不到指定的文件。
本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】的解决方案
最近发现个深坑,本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】,这是由于服务器 IIS 和本地 IIS 默认配置不一致引起的,解决方案如下:
修改服务器 IIS 该网站的应用程序池配置项:【加载用户配置文件】 改为 True 即可~
以上内容 转载:
本地可以,发布到服务器报错【CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)系统找不到指定的文件】的解决方案_JZii 的博客-CSDN博客
问题原因
程序池有个配置“加载用户配置文件”,要设置为true,要不然读不了证书
问题经过本地测试没有问题,线上报错
开发环境没有问题, 生产环境报错的
他的底层是
在服务器上查找这个路径
C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6.1System.Core.dll
发现没有装 .NETFramework 4.6.1
然后就在服务器装了 .NETFramework 4.6.1
还是报错“系统找不到指定的文件。”
怀疑需要重启服务器;
经过重启也没有解决问题
我本地测试装了其他版本的.NET;也没有重启电脑;但是可以正常使用
那就把服务器和本地的“System.Core.dll”拿来对比下吧;
对比后也依旧没有发现什么异样;
既然不是程序和文件的问题,那一定是服务器系统配置问题,
接着就用百度搜了【使用 CngKey错误提示:系统找不到指定的文件。】就找到了上面的文章,在IIS设置了“站点”的“程序池” (“加载用户配置文件”,设置为true)
刷新站点,
一切是那么清新,一个字“真爽”;程序正常了!!!
划重点:
设置“站点”的“程序池” (“加载用户配置文件”,设置为true)
设置“站点”的“程序池” (“加载用户配置文件”,设置为true)
设置“站点”的“程序池” (“加载用户配置文件”,设置为true)



