从文件导入RSA密钥时遇‘Safe handle has been closed’错误求解决
解决导入RSA密钥时的‘Safe handle has been closed’错误
以管理员权限运行命令提示符
导入RSA密钥涉及系统级密钥容器的访问操作,普通权限会引发句柄异常。右键点击“Developer Command Prompt for VS 2022”,选择「以管理员身份运行」,再重新执行命令:aspnet_regiis -pi "keyname" "C:\keyfile.xml"检查密钥文件的权限与完整性
确保C:\keyfile.xml文件对当前用户开放读取权限——右键文件→属性→安全面板,添加当前用户的读取权限。同时打开XML文件确认内容完整,需包含标准的<RSAKeyValue>节点格式,无损坏或缺失内容。清理冲突的密钥容器
若指定的keyname已存在于系统密钥容器中,会导致句柄冲突。先执行删除命令清理原有容器,再重新导入:aspnet_regiis -pz "keyname" aspnet_regiis -pi "keyname" "C:\keyfile.xml"匹配ASP.NET IIS注册工具的版本
确认aspnet_regiis.exe版本与项目使用的.NET框架版本一致。执行aspnet_regiis -v查看当前工具版本,若不匹配,找到对应.NET版本的工具完整路径(如C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe),直接使用该路径执行导入命令。检查加密服务状态
按Win+R输入services.msc,找到「Cryptographic Services」服务,确保其处于正在运行状态。若未运行,右键启动服务后再尝试导入操作。
内容的提问来源于stack exchange,提问作者Murugaraj Vengatapathy
相关产品推荐
相关产品推荐

