using (var _rsa = System.Security.Cryptography.RSA.Create(2048)) 報(bào)找不到文件的錯(cuò)誤
因?yàn)樵诘卿浀臅r(shí)候應(yīng)用了RSA加密,想不到在本地測試好好的,上傳到服務(wù)器就報(bào)錯(cuò),因?yàn)榉?wù)器上無法下斷點(diǎn)跟蹤,只好一行一行writelog() 看,
public static void WriteLog(string log)
{
StreamWriter dout = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "Data\\log" + ".txt", true);
dout.Write(System.DateTime.Now.ToString()+"\t" + log+"\r\n");
dout.Close();
}
結(jié)果發(fā)現(xiàn)調(diào)用using (var _rsa = System.Security.Cryptography.RSA.Create(2048)) 代碼的時(shí)候拋出了異常
Exception:系統(tǒng)找不到指定的文件。
就這樣簡單的幾個(gè)字,再也沒有多余的信息了。經(jīng)過一陣查詢,用以下方法解決了問題。找到應(yīng)用程序池,點(diǎn)開高級設(shè)置,如下圖,找到下面的配置
加載用戶配置文件設(shè)置為TRUE即可。
原理:
.NET的RSA加密會加載密鑰到密鑰存儲區(qū),用戶加載配置文件為false時(shí),沒有密鑰存儲區(qū)的訪問權(quán)限。所以報(bào)“系統(tǒng)找不到指定的文件?!碑惓?